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 42 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 53 def deliver!(mail) smtp_from, smtp_to, message = check_delivery_params(mail) response = smtp.sendmail(message, smtp_from, smtp_to) settings[:return_response] ? response : self end