通过php5 + htmlMimeMail发送的电子邮件正在接收,随机字符替换为=

时间:2009-03-25 21:04:47

标签: php email unicode outlook mime

目前使用PHP5和htmlMimeMail 5(http://www.phpguru.org/static/mime.mail.html)发送HTML电子邮件通信。一直有许多收件人的问题,看到随机字符被替换为等号,例如:

“很好。我们学校正在通过一家名为......的公司发送我们的通讯=和信息。”

已将电子邮件文本,HTML和标头编码设置为UTF-8。 PHP为电子邮件加载的模板文件(只包含()'d文本/ HTML,其中包含几个php标签)都以UTF-8编码。

有趣的是,我不能在我的任何电子邮件客户端上复制问题,并且无法通过搜索指向我的问题的yahoo / googlies找到任何信息!!

3 个答案:

答案 0 :(得分:2)

尝试使用8位编码进行发送:

$message->setTextEncoding(new EightBitEncoding());
$message->setHTMLEncoding(new EightBitEncoding());

答案 1 :(得分:1)

我有类似的问题,但我的情况有点不同。由于我偶然发现这个帖子正在寻找答案并帮助我找到答案,我想我也可以在这里发布这个相关的答案。

在我的情况下,即使通过发送的文本字符串的实际mb_detect_encoding为“UTF-8”,特殊字符也会在电子邮件中混乱,如果我回复它们,它们看起来很好。

所以我不得不使用函数

$message->setTextCharset('UTF-8')

$message->setHTMLCharset('UTF-8')

答案 2 :(得分:0)

我怀疑您的问题与旧版本的Exchange有关。 Equal signs at end of line

它可能不是带高/低位字符或编码的引用可打印的东西。此外,该页面的其他地方也说:

  

注意: Exchange中的错误(“功能”?)   可能导致换行被替换   富文本邮件时带有相同的标志   被禁用。