-1

我已经在网上搜索了这个,但似乎找不到答案。我知道 mail() 不是最好的,但我想使用它来方便。

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

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

4

2 回答 2

0

获取中文字符的一种常见方法是将一些英文文本采用常见的 8 位编码(Ascii、ISO-8859-1、windows-1252 等),并将其误解为 UTF-16 编码. 这样,您可以将例如“ab”(即 U+0061 U+0062)转换为 U+6162 或 U+6261(取决于字节序),即转换为慢或扡。

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

于 2012-12-17T08:14:11.720 回答
0

我知道 mail() 不是最好的

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

总是有多种方法可以解决不重要的问题,并且不同的方法具有不同的优势/风险/问题。对于大多数用途,mail() 是从 PHP 应用程序发送电子邮件的理想方式。

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

要么花几个星期阅读该主题并使用各种用户代理进行实验(微软甚至无法做到这一点 - 分号分隔符,糟糕的笑脸处理)或使用诸如swiftmailerphpmailer之类的工具。

于 2012-12-17T10:15:05.963 回答