Предполагая, что вы знаете, как отправлять обычные текстовые электронные письма из Rails с помощью ActionMailer, чтобы получить HTML
работающих электронных писем, вам необходимо установить тип содержимого для вашей электронной почты.
Например, ваш уведомитель может выглядеть так:
class MyMailer < ActionMailer::Base
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "system@example.com"
body :user => recipient
content_type "text/html"
end
end
Обратите внимание на строку content_type "text/html"
. Это говорит ActionMailer отправлять электронную почту с типом содержимого text/html
вместо значения по умолчанию text/plain
.
Далее вы должны сделать так, чтобы ваш почтовый просмотр выводил HTML
. Например, ваш файл просмотра app/views/my_mailer/signup_notification.html.erb
может выглядеть следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" media="screen">
h3 { color: #f00; }
ul { list-style: none; }
</style>
</head>
<body>
<h3>Your account signup details are below</h3>
<ul>
<li>Name: <%= @user.name %></li>
<li>Login: <%= @user.login %></li>
<li>E-mail: <%= @user.email_address %></li>
</ul>
</body>
</html>
Как видите, представление HTML
может включать тег <style>
для определения основных стилей. Поддерживаются не все HTML
и CSS
, особенно во всех почтовых клиентах, но вы определенно должны иметь достаточный контроль над форматированием стилей текста.
Встраивание изображений немного сложнее, если вы планируете показывать прикрепленные электронные письма. Если вы просто включаете электронные письма с внешних сайтов, вы можете использовать тег <img />
, как обычно в HTML
. Однако многие почтовые клиенты блокируют отображение этих изображений до тех пор, пока пользователь не авторизует их. Если вам нужно отобразить прикрепленные изображения, стоит посмотреть плагин Rails Inline Attachments .
Для получения дополнительной информации о поддержке рассылки Rails документация ActionMailer - отличный ресурс