Php 正在尝试创建电子邮件模板,编码问题
我已经从这里下载了Php 正在尝试创建电子邮件模板,编码问题,php,email,Php,Email,我已经从这里下载了order.html模板: 我使用file\u get\u contents将文件加载到字符串中: $mailbody = file_get_contents($template); $message = Swift_Message::newInstance("Email Template Test") ->setFrom(array('no-reply@domain.net' => 'Notification Service')) ->se
order.html
模板:
我使用file\u get\u 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邮件应用程序中查看它时,编码不正确。文件中有一行写着:
What'下一步是什么?
在收到的电子邮件中,我得到:
What'下一步是什么?
我认为原因在于它添加了
&代码>就在&之后。所以在代码中,它看起来是这样的:What&;载脂蛋白;s下一步?
,其呈现方式如上所示。但文件中不是这样,为什么会发生这种情况?您已将内容类型设置为text/html
,这是正确的,问题似乎与Outlook 365
或w10 Mail
应用程序未正确解码hmtl实体有关
您可能需要,即:
看起来您的电子邮件正文已经将其字符编码为html实体,Swift也会这样做。创建没有html实体的身体(下一步是什么),以纯文本的形式,让Swift进行编码,或者以html_entity_decode($mailBody)的形式提供身体。关于实体解码的研究否,它仍在产生相同的结果:(我对Swift\u Message
了解不多,我使用php mailer,它的工作原理完美无缺啊,是Swift在做这件事吗?有没有关闭它的方法?
$mailbody = html_entity_decode(file_get_contents($template));