Class: ActionMailer::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/action_mailer/ar_mailer.rb

Overview

Adds sending email through an ActiveRecord table as a delivery method for ActionMailer.

Constant Summary collapse

@@email_class_name =

Set the email class for deliveries. Handle class reloading issues which prevents caching the email class.

'Email'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.email_classObject



26
27
28
# File 'lib/action_mailer/ar_mailer.rb', line 26

def self.email_class
  @@email_class_name.constantize
end

.email_class=(klass) ⇒ Object



22
23
24
# File 'lib/action_mailer/ar_mailer.rb', line 22

def self.email_class=(klass)
  @@email_class_name = klass.to_s
end

Instance Method Details

#create_mail_with_priorityObject



9
10
11
12
13
# File 'lib/action_mailer/ar_mailer.rb', line 9

def create_mail_with_priority
  create_mail_without_priority
  @mail.priority = self.priority
  @mail
end

#perform_delivery_activerecord(mail) ⇒ Object

Adds mail to the Email table. Only the first From address for mail is used.



34
35
36
37
38
39
40
41
# File 'lib/action_mailer/ar_mailer.rb', line 34

def perform_delivery_activerecord(mail)
  destinations = mail.destinations
  mail.ready_to_send
  sender = (mail['return-path'] && mail['return-path'].spec) || mail.from.first
  destinations.each do |destination|
    self.class.email_class.create :mail => mail.encoded, :to => destination, :from => sender, :priority => mail.priority || 0
  end
end