Chapter 19. Mail in Rails
Most of Rails is built around HTTP, but there will be times you also want to send or receive email messages. Rails 3 includes some major upgrades to the ActionMailer system, making it 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.
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/functional/award_mailer_test.rbThat creates a new directory, app/mailers. Mailers aren’t really models, controllers, or views, so they get a separate place. Inside of that folder, award_mailer.rb offers a very basic start:
class AwardMailer < ActionMailer::Base
default from: "from@example.com"
endSetting defaults is useful, and the from field is probably the one
most likely to be consistent. You can also set default to, subject, cc,
and bcc fields if you want. For now, change from@example.com to something more
useful.
Next, we need to create ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access