如何创建CSS和图片来自Rails的电子邮件?
-
19-08-2019 - |
题
如何创建和发送从Rails应用程序的电子邮件,包含图像和正确的格式?像那些你从Facebook获取和喜欢。
解决方案
假设你知道如何使用的ActionMailer,让HTML
邮件工作,你需要设置的内容类型为电子邮件发送Rails中正常的纯文本电子邮件。
例如,您的通告程序可能是这样的:
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插件内嵌附件可能是值得一试
有关的Rails邮寄支持的更多信息,所述的ActionMailer文档是一个很大的资源
其他提示
有关的图像,你可以只使用正常image_tag
助手已定义的ActionMailer::Base.asset_host = 'http://www.your-domain.com'
后
我用回形针存储我的图像,以便在我的情况下,我可以使用该图像添加到电子邮件。
image_tag result.photo.url(:small)
如何创建CSS 大HTML格式的电子邮件,这是一个良好的开端。所有电子邮件需要遵循HTML 3.0!