2014-05-20 11:29:51 +00:00
|
|
|
class OrbitMailer < ActionMailer::Base
|
|
|
|
default :from => "noreply@rulingcom.com"
|
|
|
|
|
|
|
|
def setup
|
|
|
|
site = Site.first
|
|
|
|
|
|
|
|
mail_setting = {
|
|
|
|
:address => site['site_settings']['address'],
|
|
|
|
:port => site['site_settings']['port'],
|
|
|
|
:domain => site['site_settings']['domain'],
|
|
|
|
:authentication => site['site_settings']['authentication'],
|
|
|
|
:enable_starttls_auto => site['site_settings']['enable_starttls_auto'],
|
|
|
|
:user_name => site['site_settings']['user_name'].blank? ? nil : site['site_settings']['user_name'],
|
|
|
|
:password => site['site_settings']['password'].blank? ? nil : site['site_settings']['password']
|
|
|
|
}
|
|
|
|
|
|
|
|
ActionMailer::Base.smtp_settings = mail_setting
|
|
|
|
end
|
|
|
|
|
|
|
|
def set_mail(email)
|
|
|
|
setup
|
|
|
|
|
|
|
|
I18n.locale = email.mail_lang
|
|
|
|
|
|
|
|
site = Site.first
|
|
|
|
|
|
|
|
mail_from = email.mail_from.nil? ? site['site_settings']['service_email'] : email.mail_from
|
|
|
|
mail_reply_to = email.mail_reply_to.nil? ? site['site_settings']['reply_email'] : email.mail_from
|
|
|
|
|
|
|
|
unless email.email_files.blank?
|
|
|
|
email.email_files.each_with_index do |email_file, i|
|
|
|
|
file_type = File.extname(email_file.file.to_s)
|
2014-07-17 03:07:45 +00:00
|
|
|
# file_content = File.read(email_file.file.url)
|
|
|
|
attachments["#{email_file.title}#{file_type}"] = email_file.file.read
|
2014-05-20 11:29:51 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if email.template.nil?
|
|
|
|
mail( :from => "#{site.title} <#{mail_from}>",
|
|
|
|
:reply_to => mail_reply_to,
|
|
|
|
:bcc => email.mail_to.split(","),
|
|
|
|
:subject => email.mail_subject ) do |format|
|
|
|
|
format.html { render :text => email.mail_content }
|
|
|
|
end
|
|
|
|
else
|
|
|
|
@data = email.template_data
|
|
|
|
mail( :from => "#{site.title} <#{mail_from}>",
|
|
|
|
:reply_to => mail_reply_to,
|
|
|
|
:bcc => email.mail_to.split(","),
|
|
|
|
:subject => email.mail_subject ) do |format|
|
|
|
|
format.html { render :template => email.template, :collection => @data }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
mail_log = EmailLog.new({
|
|
|
|
:mail_subject => email.mail_subject,
|
|
|
|
:mail_to => email.mail_to,
|
|
|
|
:mail_user => email.create_user,
|
|
|
|
:mailer_count => email.mail_to.split(",").size,
|
|
|
|
:module_app => email.module_app
|
|
|
|
})
|
|
|
|
|
|
|
|
mail_log.save
|
2014-07-17 03:07:45 +00:00
|
|
|
|
|
|
|
email.destroy
|
2014-05-22 08:08:32 +00:00
|
|
|
|
2014-05-20 11:29:51 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|