使用php邮件发送的电子邮件在Outlook中无法正确显示

时间:2009-11-20 02:51:09

标签: php email outlook header

我正在开发一个最近被移动过的网站。移动后,使用php mail()函数 AND 的所有脚本都具有MIME-Version:并且标头中的Content-type无法正确显示。他们出现像这样

Delivered-To: asdf@adffdsf.com Received: by 10.114.121.18 with SMTP id t17cs128223wac;
        Thu, 19 Nov 2009 11:52:35 -0800 (PST) Received: by 10.231.48.150 with SMTP id s22mr755195ibfdge.22.1258660355109;
        Thu, 19 Nov 2009 11:52:35 -0800 (PST) Return-Path: <anonymous@u15366254sdf.onlinehome-server.com> Received: from u15366254.onlinehome-server.com (u15366254.onlinehome-server.com [74.208.194.179])
        by mx.google.com with ESMTP id 16si2425376iwn.129.2009.11.19.11.52.34;
        Thu, 19 Nov 2009 11:52:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of anonymous@u15366254.onlinehome-server.com designates 74.208.194.179 as permitted sender) client-ip=74.208.194.179; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of anonymous@u15366254.onlinehome-server.com designates 74.208.194.179 as permitted sender) smtp.mail=anonymous@u15386254.onlinehome-server.com Received: (qmail 8341 invoked by uid 48); 19 Nov 2009 08:55:35 -0500 Date: 19 Nov 2009 08:55:35 -0500 
Message-ID: <20091119185535.8339.qmail@u15386254.onlinehome-server.com> 
To: asdf@asdfad.com 
Subject: Retailer Application MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 
From: asdf@asdfad.com

此外,消息中的html显示为raw。

当我使用完全相同的脚本在另一台服务器上发送电子邮件时,它按预期工作。使用Swift邮件的网站上的电子邮件脚本也可以正常工作。

我可以修改它们以使用swift,但是有许多脚本需要编辑。

我正在使用php 5.1.6。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为您的问题与\nQMAIL有关,邮件功能文档说明了这一点。

  

注意:如果没有收到消息,   尝试仅使用LF(\ n)。有些穷人   优质的Unix邮件传输代理   由CRLF自动替换LF   (如果CRLF是,则导致CR加倍   用过的)。这应该是最后的手段,   因为它不符合»RFC 2822。

所以,如果您的标题由\r\n分隔,则可以用单\n替换它们。

bug报告还提供了使用脚本的解决方案。

答案 1 :(得分:0)

我遇到了同样的问题,通过PHP发送的电子邮件显示为Outlook中的原始电子邮件内容(其他客户端没有问题)。事实证明我的问题完全来自于此处所接受的其他原因,所以我假设标题中有很多方法会导致Outlook放弃渲染它。

我发送了一些电子邮件作为BCC,其中“To”标题看起来不像真正的电子邮件(它类似于'示例组'而不是'示例组') - 我一确定“To”标题实际上是格式化为电子邮件地址,它在Outlook中显示没有任何问题。