orbit4-5/app/mailers/orbit_mailer.rb

69 lines
2.2 KiB
Ruby

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)
# file_content = File.read(email_file.file.url)
attachments["#{email_file.title}#{file_type}"] = email_file.file.read
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
email.destroy
end
end