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