在Heroku托管的Play Framework 2应用程序上通过Mandrill对电子邮件进行了错误的内容传输编码。在当地工作

时间:2013-12-27 15:22:30

标签: email heroku playframework playframework-2.2 mandrill

我正在使用Heroku来托管用Play Framework 2.2.x(Java)编写的应用程序。此外,我使用Mailchimp的Mandrill自动发送电子邮件。

在我当地的环境中,我可以通过Mandrill发送电子邮件,一切都很好。据GMail称,电子邮件的编码如下:

MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

但是,在部署到Heroku并执行相同操作时,电子邮件看起来很乱。据GMail称,电子邮件现在具有以下编码:

MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Heroku上的网站本身看起来很好,并且在UTF8中显示异国情调的角色没有任何问题。

我应该提一下,我正在使用模板和play-easymailhttps://github.com/joscha/play-easymail/)来生成电子邮件:也就是说,我使用字符串views.html.emails.myEmailTemplate.render().toString()填充电子邮件的正文

1 个答案:

答案 0 :(得分:0)

其他地方已经回答:

https://groups.google.com/d/msg/play-framework/Fdr_Fjfbstg/cvbsJNq-SO0J

基本解决方案是从命令行为您的应用程序在JAVA_OPT中设置UTF8编码:

heroku config:add JAVA_OPTS="-Dfile.encoding=UTF8"