【发布时间】:2025-12-28 18:10:11
【问题描述】:
我之前已经问过这个问题:HTML Email occasionally sending source code 但似乎这些解决方案并没有解决问题。
我们使用包含订单确认的 PHP 向客户发送 HTML 电子邮件。绝大多数客户都能很好地收到这些电子邮件。 然而,一些用户(拥有私人域名的人)会收到这些电子邮件作为源代码。在对标头进行了一些调整后,问题现在只发生在少数用户身上,而不是所有拥有私有域名的用户身上。
我们的一位客户给我们发了这个,这是他收到的内容以及电子邮件源代码:
MIME 版本:1.0 内容类型:text/html;字符集=iso-8859-1 X-MessageSniffer-标识符:e:\SmarterMail\Spool\proc\work\1136252898525.eml X-GBUdb-Analysis: 1, 162.13.103.84, Ugly c=0 p=0 Source New X 消息嗅探器扫描结果:0 X-MessageSniffer-Rules:0-0-0-16102-c X-RBL-警告:BADROUTE:此电子邮件的路由方式与垃圾邮件 [2000010f] 一致。 X-RBL-警告:ENVMISMATCH:Env 发件人(apache@513421-db1.comms-express.com)来自:(websales@comms-express.com)不匹配。 X-Declude-Sender:apache@513421-db1.comms-express.com [162.13.103.84] X-Declude-Spoolname:1136252898525.eml X-Declude-RefID: X-MessageStream-Note:由 MessageStream (www.messagestream.com) 扫描。 X-MessageStream-Scan:2014 年 5 月 1 日 13:23:17 得分 [4] X-MessageStream-Tests:BADROUTE、ENVMISMATCH X-Country-Chain: 'EU' [损坏的 RIPE 数据]->UNITED KINGDOM->destination我从来没有见过这样的事情,所以我什至不知道从哪里开始。希望有人能指出我正确的方向?
这些是我的标题:
$来自 = $来自 。 ' '; $headers = "MIME 版本:1.0" 。 "\r\n"; $headers .= "内容类型:文本/html;charset=utf-8" 。 "\r\n"; $headers .= '来自:' 。来自 . "\r\n"; $headers .= '回复:' .来自 . "\r\n"; $headers .= '返回路径:' 。来自 . "\r\n"; $headers .= 'X-Mailer: PHP/' 。 php版本()。 "\r\n"; $headers .= 'X-Originating-IP: ' 。 $_SERVER['SERVER_ADDR'] 。 "\r\n";【问题讨论】:
-
当你说“源代码”时,你是指
html代码? -
某些邮箱可以读取 html,而其他邮箱似乎无法导致该问题。我将其解决为使用 \n 而不是
。但这真的取决于接收人的邮件服务器 -
某些电子邮件客户端不解释 html。例如客户端使用 POP 协议。您可以创建两封邮件:第一封以 HTML 格式在开头,第二封以纯文本格式在邮件末尾。无法阅读 HTML 电子邮件的人可以阅读文本电子邮件
-
我会说,@DanielJohnson,这就是我喜欢使用邮件库而不是从头开始写标题的原因。 PHPmailer 允许您拥有 HTML 和纯文本电子邮件正文,这对于您正在查看的内容来说真的很方便。
-
@Gwenc37 IMAP 与 POP 的使用与电子邮件的显示方式无关。