Ruby no longer has to be jealous of PHP’s mail() function, which can send an email in a single command.
Pony.mail(:to => 'you@example.com', :from => 'me@example.com', :subject => 'hi', :body => 'Hello there.')
Any option key may be omitted except for :to.
Pony uses /usr/sbin/sendmail to send mail if it is available, otherwise it uses SMTP to localhost.
This can be over-ridden if you specify a via option
Pony.mail(:to => 'you@example.com', :via => :smtp) # sends via SMTP Pony.mail(:to => 'you@example.com', :via => :sendmail) # sends via sendmail
You can also specify options for SMTP:
Pony.mail(:to => 'you@example.com', :via => :smtp, :smtp => { :host => 'smtp.yourserver.com', :port => '25', :user => 'user', :pass => 'pass', :auth => :plain # :plain, :login, :cram_md5, no auth by default :domain => "localhost.localdomain" # the HELO domain provided by the client to the server }
With smtp transport it also possible to use TLS/SSL:
Pony.mail(:to => 'you@example.com', :via => :smtp, :smtp => { :host => 'smtp.gmail.com', :port => '587', :tls => true, :user => 'user', :pass => 'pass', :auth => :plain # :plain, :login, :cram_md5, no auth by default :domain => "localhost.localdomain" # the HELO domain provided by the client to the server })
You can attach a file or two with the :attachments option:
Pony.mail(..., :attachments => {"foo.zip" => File.read("path/to/foo.zip"), "hello.txt" => "hello!"})
Written by Adam Wiggins
Patches contributed by: Mathieu Martin, Arun Thampi, Thomas Hurst, Stephen Celis, Othmane Benkirane, and Neil Mock
Released under the MIT License: www.opensource.org/licenses/mit-license.php