Chapter 19. Mail in Rails
Prior to email, our private correspondence was secured by a government institution called the postal service. Today, we trust AOL, Microsoft, Yahoo, Facebook, or Gmail with our private utterances.
Most of Rails is built around HTTP, but there will be times you also want to send or receive email messages. Thanks to the ActionMailer system, it’s almost as easy to send and receive mail messages as it is to send and receive information over HTTP. Because mail systems are separate from Rails, there’s still some difficulty in connecting Rails to mail servers, but you can at least get started pretty easily. If you would like to code along with this chapter, make a copy of ch09/students03 and start there.
Sending Mail Messages
Telling Rails to send email messages requires putting a little bit of infrastructure in place, creating views specifying what the messages should say, and telling Rails when to send what. Except that it’s an extra piece that goes outside the usual HTTP context, it’s not very difficult.
First, you need to generate a mailer:
$ rails generate mailer AwardMailer create app/mailers/award_mailer.rb invoke erb create app/views/award_mailer invoke test_unit create test/mailers/award_mailer_test.rb create test/mailers/previews/award_mailer_preview.rb
Alongside the assets, controllers, and models directories within the app directory, Rails has provided us with the mailers directory. Mailers aren’t really models, controllers, or ...