我已从此处下载了order.html
模板:
http://foundation.zurb.com/emails/email-templates.html
我使用file_get_contents
$mailbody = file_get_contents($template);
$message = Swift_Message::newInstance("Email Template Test")
->setFrom(array('no-reply@domain.net' => 'Notification Service'))
->setTo("email@domain.com")
->setBody($mailbody,'text/html');
$mailResult = $swiftmail->send($message);
但是,当我在Outlook 365或w10 Mail应用程序中查看它时,编码是不正确的。文件中有一行说:
<h4>What's Next?</h4>
在收到的电子邮件中,我得到了:
What's Next?
我认为原因是出于某种原因它正在&amp;之后添加&
。所以在代码中它看起来像这样:What&apos;s Next?
,它如上所示。虽然它不像文件中那样,为什么会发生这种情况?
答案 0 :(得分:1)
看起来您的电子邮件正文已将其字符编码为html实体,而Swift再次执行相同操作。创建你的身体没有html实体(下一步是什么),作为纯文本,让Swift进行编码,或者提供你的身体为html_entity_decode($ mailBody)。
答案 1 :(得分:0)
您已将内容类型设置为text/html
,这是正确的,问题似乎与Outlook 365
或w10 Mail
应用无法正确解码hmtl实体有关。
您可能需要html_entity_decode,即:
$mailbody = html_entity_decode(file_get_contents($template));