这几天我都快疯了。我有一封电子邮件。如果我通过 MailEnable 从 Windows Server 2003 服务器发送它,某个人使用 Outlook 2003 就可以正常接收它。但是,如果我从 Ubuntu 10 服务器发送完全相同的消息,使用 SSMTP 将电子邮件中继到完全相同的 MailEnable 队列,收件人就会收到一封乱七八糟的电子邮件。到处都是各种“=”。完全相同的电子邮件在我的 Ubuntu 电脑、Mac 以及我工作的所有 Windows/Mac 电脑上看起来都很好。以下是他们收到的副本的摘录:
公司在机构制定公司许可证的过程中一直与公司保持沟通,他们知道这将影响水生农药的使用。但在 12 月,公司告知我们,公司许可证还将涵盖“在水或水运输工具上或附近”使用的任何农药。他们描述了这样一种情况,即在有水道或沟渠的田地或牧场上使用农药(即使水道或沟渠是干的)需要公司许可证。这意味着大多数对农作物使用的农药都需要公司许可证,并且必须遵守所有繁琐的文书工作要求,而且所有农药使用记录都将向公众开放以供审查。
到底发生了什么事?我正在使用 PHP 的 Mail_Mime 发送邮件,如果这很重要的话。
我尝试在内部上网本上测试了这个问题,运行 XP 和 Outlook 2003,看起来一切正常。但不幸的是,这种情况发生在多个人身上,他们来自不同的公司,也来自不同的州。这可能是 Outlook 的问题吗?还是防火墙的问题?
更新:这是我之前请求时他们发给我的标题:
Return-Path: <[email protected]>
Received: from SITE (SITE.com [IP])
by SITE.com (SMTP Server) with ESMTP id ID
for <[email protected]>; Fri, 18 Feb 2011 16:38:05 -0500 (EST)
X-Virus-Scanned: OK
X-MessageSniffer-Scan-Result: 0
X-MessageSniffer-Rules: 0-0-0-10711-c
X-CMAE-Scan-Result: 0
X-CNFS-Analysis: v=1.0 c=1 a=fpbBW95AU7UA:10 a=V-86MDL6o3cA:10 a=2Mw0Nu_bH78A:10 a=8nJEP1OIZ-IA:10 a=3kJrlQ3aEg89S9maSudBQQ==:17 a=Ww5RAa15AAAA:8 a=JX_BoxCjAAAA:8 a=JcDirsyPbdX-XEqaAUgA:9 a=ngHfobyUGqXcY9kSWnIA:7 a=05uKYfN37foODCkO7ME1CkFJn8MA:4 a=wPNLvfGTeEIA:10 a=gArCrrCDqOYA:10 a=ePQ_FuT6AdwA:10 a=73nFPGVr2tkA:10
Received: from [IP] ([IP:PORT] helo=GATE)
by SITE.com (envelope-from <[email protected]>)
(ecelerity 2.2.3.46 r(37554)) with ESMTPS (cipher=AES256-SHA)
id ID; Fri, 18 Feb 2011 16:38:05 -0500
X-Spam-Threshold: 95
X-Spam-Score: 0
X-Spam-Flag: NO
X-Virus-Scanned: OK
X-MessageSniffer-Scan-Result: 0
X-MessageSniffer-Rules: 0-0-0-9968-c
X-CMAE-Scan-Result: 0
X-CNFS-Analysis: v=1.0 c=1 a=V-86MDL6o3cA:10 a=2Mw0Nu_bH78A:10 a=8nJEP1OIZ-IA:10 a=JT1tiycblF0oPc1pVibdeg==:17 a=Ww5RAa15AAAA:8 a=JX_BoxCjAAAA:8 a=JcDirsyPbdX-XEqaAUgA:9 a=ngHfobyUGqXcY9kSWnIA:7 a=05uKYfN37foODCkO7ME1CkFJn8MA:4 a=wPNLvfGTeEIA:10 a=gArCrrCDqOYA:10 a=ePQ_FuT6AdwA:10 a=73nFPGVr2tkA:10
X-Orig-To: [email protected]
X-Originating-Ip: [IP]
Received: from [IP] ([IP:PORT] helo=SITE.com)
by SITE.com (envelope-from <[email protected]>)
(ecelerity 2.2.3.46 r(37554)) with ESMTP
id ID; Fri, 18 Feb 2011 16:33:03 -0500
Received: from mailserver ([IP]) by SITE.com with MailEnable ESMTP; Fri, 18 Feb 2011 15:32:59 -0600
Message-ID: <[email protected]>
Received: by mailserver (sSMTP sendmail emulation); Fri, 18 Feb 2011 15:31:55 -0600
Date: Fri, 18 Feb 2011 15:31:55 -0600
To: [email protected]
Subject: SUBJECT
X-PHP-Originating-Script: 1000:mail.php
MIME-Version: 1.0
From: PERSON <[email protected]>
Reply-To: PERSON <[email protected]>
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="ISO-8859-1"
答案1
我一直不知道问题是什么,但是通过让 PEAR 使用 base64 编码,现在一切似乎都很好。
谢谢大家。
答案2
可能应该是一条评论,但它太长了。
很高兴你已经解决了这个问题,但是如果你想知道为什么会发生这种情况,请继续阅读以了解一种可能性。
您的标题显示电子邮件正在以“quoted-printable”格式发送。此格式为应该这是确保电子邮件正确发送的方法之一,即使它们通过旧邮件服务器时也是如此,因为旧邮件服务器假定每行不超过 76 个字符。为此,它会在认为需要时插入自己的回车符,并且无论何时插入,它都会添加等号。另一端应该发生的事情是,电子邮件客户端看到电子邮件是可引用打印的,并删除等号和多余的回车符。
PHP 例程的编码可能不太正确,这可能会在某个地方造成混淆,导致服务器/客户端对电子邮件的翻译不同。
正如您所发现的,使用不同的编码方法可以避免该问题。