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

Version Path
mail_spy-0.1.1 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.1.0 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.18 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.17 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.16 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.15 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.14 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.13 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.12 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.11 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.10 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.9 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.8 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.7 app/mailers/mail_spy/core_mailer.rb
mail_spy-0.0.6 app/mailers/mail_spy/core_mailer.rb