Sha256: 20b0735e48b4e778b718a6a19ba85c395f2a96961b35bcec30d513190f4420a5
Contents?: true
Size: 1.55 KB
Versions: 15
Compression:
Stored size: 1.55 KB
Contents
module MailSpy class CoreMailer < ActionMailer::Base helper "mail_spy/email" def template(email) # Slight hack to provide information to helpers @_email = email @template_values = email.template_values esp = MailSpy.esps[email.email_service_provider] email_hash = {} # Evaluate the subject line as erb if email.subject.present? subject = ERB.new(email.subject).result(binding) email_hash[:subject] = subject end # Set Headers std_email_keys = [:to, :cc, :bcc, :from, :message_id, :sender, :reply_to] std_email_keys.each { |key| set_if_present(email_hash, email, key) } email.headers.each {|key, value| headers[key] = value} if email.headers.present? # Create the mail message mail_message = mail(email_hash) do |format| format.text { render :inline => email.text_erb } format.html { render :inline => email.html_erb } end mail_message.delivery_method.settings.merge!( { :address => esp.address, :user_name => esp.user_name, :password => esp.password, :port => esp.port, :authentication => esp.authentication, :enable_starttls_auto => esp.enable_starttls_auto, :domain => esp.domain }) mail_message end protected def set_if_present(email_hash, email, hash_key, email_key=nil) email_key = hash_key if email_key.nil? value = email.send("#{email_key}") email_hash[hash_key] = value if value.present? end end end
Version data entries
15 entries across 15 versions & 1 rubygems