Class: Newman::Mailer

Inherits:
Object
  • Object
show all
Defined in:
lib/newman/mailer.rb

Instance Method Summary collapse

Constructor Details

#initialize(settings) ⇒ Mailer

To initialize a Newman::Mailer object, a settings object must be provided, i.e:

settings = Newman::Settings.from_file('config/environment.rb')
mailer   = Newman::Mailer.new(settings)

This is done automatically for you by Newman::Server.simple, but must be done manually if you are creating a Newman::Server instance from scratch.

Currently, not all of the settings supported by the mail gem are mapped by Newman. This is by design, to limit the amount of configuration options need to think about. However, if this is causing you a problem, please file an issue.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/newman/mailer.rb', line 34

def initialize(settings)
  imap = settings.imap
  smtp = settings.smtp

  self.retriever_settings = {
     :address    => imap.address,
     :user_name  => imap.user,
     :password   => imap.password,
     :enable_ssl => imap.ssl_enabled || false,
     :port       => imap.port
  }
  
  self.delivery_settings = {
     :address              => smtp.address,
     :user_name            => smtp.user,
     :password             => smtp.password,
     :authentication       => :plain,
     :enable_starttls_auto => smtp.starttls_enabled || false,
     :port                 => smtp.port
  }
end

Instance Method Details

#deliver_message(*a, &b) ⇒ Object

Newman::Mailer#deliver_message is used to construct and immediately deliver a message using the delivery settings that were set up at initialization time.



88
89
90
# File 'lib/newman/mailer.rb', line 88

def deliver_message(*a, &b)
  new_message(*a, &b).deliver
end

#messagesObject

Newman::Mailer#messages is used to retrieve all messages currently in the inbox and then delete them from the server. This method returns an array of Mail::Message objects if any messages were found, and returns an empty array otherwise.



63
64
65
# File 'lib/newman/mailer.rb', line 63

def messages
  Mail::IMAP.new(retriever_settings).all(:delete_after_find => true)
end

#new_message(*a, &b) ⇒ Object

Newman::Mailer#new_message is used to construct a new Mail::Message object, with the delivery settings that were set up at initialization time. This method passes all its arguments on to Mail.new, so be sure to refer to the mail gem's documentation for details.



75
76
77
78
79
80
# File 'lib/newman/mailer.rb', line 75

def new_message(*a, &b)
  msg = Mail.new(*a, &b)
  msg.delivery_method(:smtp, delivery_settings)

  msg
end