我想用我的Rails Mailer发送html电子邮件。
可以是multipart/alternative
,也可以是text/html
。
问题是,当我发送带有链接的电子邮件时,它在Gmail上显示得很好,但在Thunderbird中却不太好。
问题是,在Thunderbird中,链接“不可点击” - 它突出显示为链接,但点击它不会做任何事情。
其他邮件上的链接(不是从Rails Mailer发送的)工作完美无缺。
所以我的问题是:如何正确发送html电子邮件,以便正确查看?
邮件代码:
class MyMailer < ActionMailer::Base
def mailing_delivery(email, subject)
mail(:to => email, :subject => subject)
end
邮件视图:
# mailing_delivery.html.haml
%p
Thanks! Its your mailer!
%p
= link_to "Google", "google.com"
电子邮件来源 (部分内容已删除) :
Date: Thu, 18 Aug 2011 14:32:34 +0200
From: xxx
To: xxx
Message-ID: <4e4d0662bf96e_41024be957a57974@xxx.mail>
Subject: Super news!
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
X-O2-Trust: 2, 64
X-O2-SPF: neutral
<p>
Thanks! It's your mailer!
</p>
<p>
<a href="google.com">Google</a>
</p>
当然是Rails 3. Thunderbird 5.0,但这不是问题 - 因为不知何故其他邮件显示良好..而且我不认为它是应用特定的。
我应该怎么做才能使这项工作?
修改:我尝试更改'content-transfer-encoding'标题但没有成功,通过执行mail(:to => email, :subject => subject, "Content-Transfer-Encoding" => value)
或在课程default "Content-Transfer-Encoding" => value
中没有运气..如何要改变吗?
在Thunderbird下运行良好的电子邮件有Content-Transfer-Encoding: quoted-printable
(或最终base64
)所以也许这就是问题所在?我该如何更改?
编辑2 我设法将Content-Transfer-Encoding
更改为quoted-printable
,但它正在削减内容,如下所示:
Date: Thu, 18 Aug 2011 22:04:21 +0200
From: xxx
To: xxx
Message-ID: <4e4d704557839_151c4e4957c2132e@xxx.mail>
Subject: Super news!
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-O2-Trust: 2, 63
X-O2-SPF: neutral
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww=
w.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>
Thanks! It's your mailer!
</p>
<p>
<a href=
另一件事:为什么Content-Type
中有换行符?我没有在其他(工作良好)邮件中看到它。我怎么能摆脱它?
答案 0 :(得分:2)
如果你修复你的HTML,也许它会工作。所以不要只是:
<p>
Thanks! It's your mailer!
</p>
<p>
<a href="google.com">Google</a>
</p>
尝试:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>
Thanks! It's your mailer!
</p>
<p>
<a href="http://google.com">Google</a>
</p>
</body>
</html>