Receiving Mail

While sending email out is probably a more common scenario in most web development, there will also be times when you want your application to process incoming email messages. ActionMailer also supports this, after a setup process that may be more difficult than the Rails-specific part of the work.

Setup

Retrieving email is harder than sending it, because so much depends on the details of how your server delivers it. Servers could use dovecot, getmail, or any of a variety of tools to take mail out of the incoming queue and put it in specific mailboxes. Unfortunately, there’s no way for this book to explain configuring mail servers to pass mail to Rails without growing much larger. Instead, you should check out and explore http://wiki.rubyonrails.com/rails/pages/HowToReceiveEmailsWithActionMailer, which offers configuration directions for working with the Postfix, Sendmail, and Qmail servers, as well as regular POP-3 and IMAP connections.

POP-3 and IMAP offer a key advantage—your Rails application is in charge of when and how often it checks mail. That lets you process messages in bulk, making it easier to develop more efficient handling.

All of the setup variations, though, collect incoming messages and send them directly to a class in the Rails application. While Rails does its own routing for incoming HTTP requests, the mail server configuration handles the question of which Rails method will get to receive which email message.

Processing Messages

Once the servers are ...

Get Learning Rails: Live Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.