我以前已经问过这个问题:HTML电子邮件偶尔会发送源代码,但这些解决方案似乎并没有解决这个问题。
我们使用PHP向客户发送HTML电子邮件,其中包含订单确认。绝大多数客户都能收到这些电子邮件。但是,有些用户(拥有私有域名的人)会将这些电子邮件作为源代码接收。在对标题进行了一些调整之后,问题现在只出现在少数用户身上,而不是所有拥有私有域名的用户身上。
我们的一个客户给我们发了这个,这是他收到的以及电子邮件源代码:
MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 X-MessageSniffer-Identifier: e:\SmarterMail\Spool\proc\work\1136252898525.eml X-GBUdb-Analysis: 1, 162.13.103.84, Ugly c=0 p=0 Source New X-MessageSniffer-Scan-Result: 0 X-MessageSniffer-Rules: 0-0-0-16102-c X-RBL-Warning: BADROUTE: This E-mail was routed in a poor manner consistent with spam [2000010f]. X-RBL-Warning: ENVMISMATCH: Env sender (apache@513421-db1.comms-express.com) From: (websales@comms-express.com) mismatch. X-Declude-Sender: apache@513421-db1.comms-express.com [162.13.103.84] X-Declude-Spoolname: 1136252898525.eml X-Declude-RefID: X-MessageStream-Note: Scanned by MessageStream (www.messagestream.com). X-MessageStream-Scan: Score [4] at 13:23:17 on 01 May 2014 X-MessageStream-Tests: BADROUTE, ENVMISMATCH X-Country-Chain: 'EU' [corrupt RIPE data]->UNITED KINGDOM->destination
我从未见过这样的事情,所以我甚至不知道从哪里开始。希望有人能给我指出正确的方向?
以下是我的标题:
$from = $from . ' '; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=utf-8" . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $headers .= 'Reply-To: ' . $from . "\r\n"; $headers .= 'Return-Path: ' . $from . "\r\n"; $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n"; $headers .= 'X-Originating-IP: ' . $_SERVER['SERVER_ADDR'] . "\r\n";
在我看来,这些用户的电子邮件变成了txt类型的文件,而不是需要解释的超文本标记语言文件。您在标题中发布的内容是一个普通的电子邮件标题,它对阅读邮件的用户隐藏,然后被为用户生成邮件的部分剥离。我曾经被一位主管要求验证这条消息,这就是它所说的。