Rails邮件程序和链接无法在Thunderbird下运行

时间:2011-08-18 12:46:04

标签: ruby-on-rails ruby-on-rails-3 actionmailer thunderbird

我想用我的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中有换行符?我没有在其他(工作良好)邮件中看到它。我怎么能摆脱它?

1 个答案:

答案 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>