Sending Complex HTML Email
Once you start sending HTML email, odds are good that you’ll want to start sending pretty HTML email, complete with graphics. You can include HTML links to resources on your site, but many mail programs block those, because they’re potential violations of privacy. Instead, it often makes more sense to send the graphics as part of the email message, as a multipart attachment.
Warning
There are fewer and fewer people who deeply object to HTML email, but there are still a lot of people who get annoyed by huge messages that take a long time to download. If you wouldn’t feel comfortable sending a message to a relative on dial-up, you probably shouldn’t send it to anyone, unless they’ve specifically requested something they know is large.
ActionMailer can handle most of the logistics for this, using the same tools shown earlier, but it needs one additional library to make it work. From the command line, add the InlineAttachment gem:
gem install InlineAttachment
One of the nicer features of multipart email is that it can include a plain-text version
as well as HTML and graphics, so app/views/awards/show.html.erb can revert to the checkbox-free version shown
earlier in Example 17-5. Similarly, because
the awards_controller
no longer needs to evaluate
the checkbox, app/controllers/awards_controller.rb can
revert to the version shown in Example 17-2. (The
code for this example is in ch17/students012.)
Most of the work needed to send the message now falls into the AwardMailer ...
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.