class Mail::SMTPConnection
Sending Email with SMTP
¶ ↑
Mail
allows you to send emails using an open SMTP
connection. This is done by passing a created Net::SMTP object. This way we can get better performance to our local mail server by reducing the number of connections at any one time.
Sending via SMTP
server on Localhost¶ ↑
To send mail open a connection with Net::Smtp using any options you like
Delivering the email¶ ↑
Once you have the settings right, sending the email is done by:
smtp_conn = Net::SMTP.start(settings[:address], settings[:port]) Mail.defaults do delivery_method :smtp_connection, { :connection => smtp_conn } end Mail.deliver do to 'mikel@test.lindsaar.net' from 'ada@test.lindsaar.net' subject 'testing sendmail' body 'testing sendmail' end
Or by calling deliver on a Mail
message
mail = Mail.new do to 'mikel@test.lindsaar.net' from 'ada@test.lindsaar.net' subject 'testing sendmail' body 'testing sendmail' end mail.deliver!
Attributes
settings[RW]
smtp[RW]
Public Class Methods
new(values)
click to toggle source
# File lib/mail/network/delivery_methods/smtp_connection.rb, line 43 def initialize(values) raise ArgumentError.new('A Net::SMTP object is required for this delivery method') if values[:connection].nil? self.smtp = values[:connection] self.settings = values end
Public Instance Methods
deliver!(mail)
click to toggle source
Send the message via SMTP
. The from and to attributes are optional. If not set, they are retrieve from the Message
.
# File lib/mail/network/delivery_methods/smtp_connection.rb, line 51 def deliver!(mail) envelope = Mail::SmtpEnvelope.new(mail) response = smtp.sendmail(envelope.message, envelope.from, envelope.to) settings[:return_response] ? response : self end