我正在尝试发送一封HTML电子邮件,这对我们的用户来说基本上只是一个巨大的图像。到目前为止,我还没有尝试任何花哨的东西。我的观点如下:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<style type="text/css">
body {
background-image: url('https://s3.amazonaws.com/my-bucket/image.png');
background-repeat: repeat-y no-repeat;
background-color: #333;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
</body>
</html>
我并不完全担心在所有邮件客户端上都有这项工作,但主要的工作会很棒。当我使用ActionMailer发送此电子邮件时,我只收到一条空消息。看起来图像不会被应用,至少在gmail Web客户端中。
任何建议都会很棒。我也希望将整个图像点击进入iTunes商店链接,但是当我将图像显示出来时,我会看到那部分。
答案 0 :(得分:0)
您确定您的文件可供公众访问吗?尝试直接访问该URL。 如果没有,您必须在亚马逊桶中将其标记为可公开访问。
以下是来自我们的一个邮件的片段,其中包含S3(.erb文件)上的图片,并且工作正常:
Dear <b><%= @card.first_name %></b>,
<br/><br/>
Thank you for being a member with us since <strong><%= @card.start_date.strftime("%d %b %Y") %></strong>.
<br/><br/>
...
Warm Regards,
<br/>
Team MyCompany
<br/><br/>
<% if Settings.show_banner_image_in_email %>
<div style="text-align:center;">
<a href="<%= Settings.website_url %>">
<img src="http://cdn2.mywebsite.com/images/EmailFooterBanner.jpg" width="590px" height="118px" />
</a>
</div>
<% end %>
<b>Happy to Help!</b>
<br/>Voice: 23424234242342
<br/>E-mail: <a href="mailto:customercare@mywebsite.com">customercare@mywebsite.com</a>
<br/>Web: <a href="<%= Settings.website_url %>"><%= Settings.website_url %></a>
<br/>
编辑: 如果您的app / mailers中的模型名为 UserMailer ,则必须将您的邮件程序视图存储在视图下名为“ user_mailer ”的文件夹中。那是它被拿起来的时候。
答案 1 :(得分:0)
电子邮件中的所有css都应该是内联的。考虑使用像premailer
这样的宝石帮助内联它。