adamwiggins/pony + file attachment (without GAE) + TLS
Ruby
Pull request Compare This branch is 5 commits ahead, 2 commits behind adamwiggins:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
README.rdoc
Rakefile
pony.gemspec

README.rdoc

Pony, the express way to send email in Ruby

Overview

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.

Transport

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
}

TLS/SSL

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
})

Attachments

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!"})

Meta

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

github.com/adamwiggins/pony