切换服务器后,电子邮件中的 Content-Type 标头被删除

切换服务器后,电子邮件中的 Content-Type 标头被删除

我的程序每天向用户发送电子邮件。我最近更换了服务器,当我们在新服务器上设置电子邮件作业时,我们的一位用户抱怨他们收到的电子邮件是计划文本。其他用户没有遇到此问题。

大多数用户收到的标头如下(用 <> 标签替换敏感信息):

Delivered-To: <email>
Received: by 10.229.215.75 with SMTP id hd11cs31754qcb; Fri, 8 Jul 2011 06:00:20 -0700 (PDT)
Received: by 10.150.236.18 with SMTP id j18mr2060469ybh.84.1310130019825; Fri, 08 Jul 2011 06:00:19 -0700 (PDT)
Return-Path: <return path>
Received: from <server> ([<ip address>])
    by mx.google.com with ESMTP id f14si8302490ybc.25.2011.07.08.06.00.18;
    Fri, 08 Jul 2011 06:00:18 -0700 (PDT)
Received-SPF: neutral (google.com: <ip address> is neither permitted nor denied by best guess record for domain of <return path) client-ip=<ip address>;
Authentication-Results: mx.google.com; spf=neutral (google.com: <ip address> is neither permitted nor denied by best guess record for domain of <return path>) smtp.mail=<return path>
Received: by <server name> (Postfix, from userid 1001)
id 41B4C162FFA; Fri,  8 Jul 2011 08:00:17 -0500 (CDT)
To: <user email address>
Subject: <subject>
X-PHP-Originating-Script: 33:Email.php
From: <from email address>
Content-Type: text/html; charset=utf-8
Message-Id: <20110708130018.41B4C162FFA@<server>>
Date: Fri,  8 Jul 2011 08:00:17 -0500 (CDT)

但是,出现错误的用户会收到以下标头:

Return-Path: <return path>
Received: from <server> (UnknownHost [<ip address>]) by seriousw1.seriousw1.com with SMTP; Mon, 11 Jul 2011 08:00:26 -0500
Received: by <server> (Postfix, from userid 1001)
   id 72F2A163F34; Mon, 11 Jul 2011 08:00:09 -0500 (CDT)
To: <user email address>
Subject: <subject>
X-PHP-Originating-Script: 33:Email.php
From: <from email>
Message-ID: <809141a1b4f842e0a015f20c000dab91@com>
X-SmarterMail-Spam: SPF_None, Reverse DNS Lookup, ISpamAssassin 3 [raw: 2], DK_None, DKIM_None
X-SmarterMail-TotalSpamWeight: 5

从上面可以看出,Content-Type 声明不包含在第二个标头中,导致消息被解释为纯文本。

我尝试了各种方法,但现在完全陷入困境。任何帮助或想法都非常感谢。

谢谢!

答案1

首先需要注意的是:这不是 Postfix 的问题。除非您明确配置 Postfix 以消除标题中应保留该内容。您的问题可能出现在以下情况之一:

  1. 生成邮件的软件(不是转发邮件的 Postfix)不会创建标题字段。因此其他邮件服务器会尝试添加缺失的字段。其他则不会。
  2. 收件人的邮件服务器或垃圾邮件过滤器删除传送前的标头字段。

因此,首先检查您收到的邮件是否带有正确的标题字段。如果是,则一切正常,是接收方的问题。但这看起来确实像是您的 Email.php 的问题,因为它还存在其他问题:

  • 无效的消息 ID:
  • 失踪日期:
  • 缺少内容类型:
  • 缺少内容传输编码:
  • 缺少 MIME 版本:

所以这也可能导致垃圾邮件评级高达 5。

相关内容