奇怪的外来字符与PHP邮件功能

时间:2012-12-17 06:58:17

标签: php html

我在网上搜索过这个但似乎无法找到答案。我知道mail()不是最好的,但我想用它来轻松。

我正在使用mail()和file_get_contents发送基本的html电子邮件,但是当在Apple Mail中查看时,已发送的电子邮件在邮件摘要中具有看起来像中文字符的内容。不幸的是,作为新用户,我无法发布图片。

我将邮件发送到Apple Mail中查看的Gmail帐户,因此摘要显示在主题行下方。当我实际查看电子邮件时,中文字符不存在。我真的想摆脱这些奇怪的角色,并感谢你的帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

获取中文字符的常用方法是使用常见的8位编码(Ascii,ISO-8859-1,windows-1252,无论如何)使用一些英文文本,并将其误解为好像是UTF -16编码。通过这种方式,你会转向,例如“ab”,即U + 0061 U + 0062,U + 6162或U + 6261(取决于字节顺序),即慢速或扡。

因此,问题很可能是字符编码。没有进一步的信息,就不可能说出真正发生的事情。要分析这种情况,最好先测试一下,不要涉及gmail,这可能是这里的罪魁祸首。

答案 1 :(得分:0)

  

我知道mail()不是最好的

这是一个非常有启发性的评论。

总有多种方法可以解决问题,这些方法不仅仅是微不足道的,而且不同的方法具有不同的优势/风险/问题。在大多数情况下,mail()是从PHP应用程序发送电子邮件的理想方式。

然而,通过SMTP发送HTML电子邮件远非微不足道。您需要详细了解mime和字符编码。解释这些远远超出了答案的范围。

要么花几周时间阅读这个主题并使用各种用户代理进行实验(微软甚至无法做到这一点 - 半结肠分离器,蹩脚的笑脸处理)或使用{{3等工具}或swiftmailer