首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mail()未能正确发送HTML电子邮件

php mail()未能正确发送HTML电子邮件
EN

Stack Overflow用户
提问于 2011-08-15 05:37:32
回答 7查看 13.7K关注 0票数 2

我正在使用这里找到的php脚本:

http://css-tricks.com/2866-sending-nice-html-email-with-php/

我已经上传到我的服务器-它拒绝正确地发送电子邮件!

这是我在Gmail中收到的:(显示为原始html)

代码语言:javascript
复制
Content-Type: text/html; charset=ISO-8859-1
<html>
    <body>
        <img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />
        <table rules="all" style="border-color: #666;" cellpadding="10">
            <tr style='background: #eee;'>
                <td><strong>Name:</strong> </td>
                <td>sd</td>
            </tr>
            <tr>
                <td><strong>Email:</strong> </td>
                <td>myrealemail@gmail.com.au</td>
            </tr>
            <tr>
                <td><strong>Type of Change:</strong> </td>
                <td>Change to Existing Content</td>
            </tr>
            <tr>
                <td><strong>Urgency:</strong> </td>
                <td>Super Wicked Urgent</td>
            </tr>
            <tr>
                <td><strong>URL To Change (main):</strong> </td>
                <td>http://css-tricks.com/2866-sending-nice-html-email-with-php/</td>
            </tr>
            <tr>
                <td><strong>CURRENT Content:</strong></td>
                <td>fdasgdsfg</td>
            </tr>
            <tr>
                <td><strong>NEW Content:</strong> </td>
                <td>sdfgsdgf</td>
            </tr>
        </table>
    </body>
</html>

是否有任何服务器设置需要更改?

我还在这台服务器上使用了一些wordpress插件,这些插件似乎也有相同的问题。

任何想法都会很好。

更新:

  • 在所有需要的地方,代码都是用我真正的电子邮件编辑的。(为了安全起见,此处删除)-此处可见完整的代码:http://css-tricks.com/2866-sending-nice-html-email-with-php/

**更新**

以下是我在Gmail中点击“显示原版”时得到的信息

代码语言:javascript
复制
Delivered-To: [removed-intentionally]@gmail.com
Received: by 10.204.157.136 with SMTP id b8cs43947bkx;
    Sun, 14 Aug 2011 22:29:40 -0700 (PDT)
Received: from mr.google.com ([10.236.77.232])
    by 10.236.77.232 with SMTP id d68mr14702149yhe.74.1313386180151 (num_hops = 1);
    Sun, 14 Aug 2011 22:29:40 -0700 (PDT)
Received: by 10.236.77.232 with SMTP id d68mr11051146yhe.74.1313386179570;
    Sun, 14 Aug 2011 22:29:39 -0700 (PDT)
Return-Path: <anonymous@ub002lps00.cbr.the-server.net.au>
Received: from ironport1-mx.cbr1.mail-filtering.com.au (ironport1-mx.cbr1.mail-filtering.com.au [203.88.115.241])
    by mx.google.com with ESMTP id g70si16130380yhe.152.2011.08.14.22.29.38;
    Sun, 14 Aug 2011 22:29:39 -0700 (PDT)
Received-SPF: neutral (google.com: 203.88.115.241 is neither permitted nor denied by best guess record for domain of anonymous@ub002lps00.cbr.the-server.net.au) client-ip=203.88.115.241;
Authentication-Results: mx.google.com; spf=neutral (google.com: 203.88.115.241 is neither permitted nor denied by best guess record for domain of anonymous@ub002lps00.cbr.the-server.net.au) smtp.mail=anonymous@ub002lps00.cbr.the-server.net.au
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqoHAHOuSE5xFATR/2dsb2JhbABBmHOPCHeEEYd0lCyfAIZHBKQJ
X-IronPort-AV: E=Sophos;i="4.67,372,1309701600"; 
d="scan'208,217";a="465774510"
Received: from ub002lps00.cbr.the-server.net.au ([113.20.4.209])
by ironport1-mta.cbr1.mail-filtering.com.au with ESMTP; 15 Aug 2011 15:29:03 +1000
Received: (qmail 14705 invoked by uid 10317); 15 Aug 2011 07:29:02 +0200
Date: 15 Aug 2011 07:29:02 +0200
Message-ID: <20110815052902.14702.qmail@ub002lps00.cbr.the-server.net.au>
To: [removed-intentionally]@gmail.com
Subject: Website Change Reqest
From: [removed-intentionally]@gmail.com
Reply-To: [removed-intentionally]@gmail.com
MIME-Version: 1.0

Content-Type: text/html; charset=ISO-8859-1

<html><body><img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" /><table rules="all" style="border-color: #666;" cellpadding="10"><tr style='background: #eee;'><td><strong>Name:</strong> </td><td>sd</td></tr><tr><td><strong>Email:</strong> </td><td>[removed-intentionally]@gmail.com</td></tr><tr><td><strong>Type of Change:</strong> </td><td>Change to Existing Content</td></tr><tr><td><strong>Urgency:</strong> </td><td>Super Wicked Urgent</td></tr><tr><td><strong>URL To Change (main):</strong> </td><td>http://css-tricks.com/2866-sending-nice-html-email-with-php/</td></tr><tr><td><strong>CURRENT Content:</strong> </td><td>fdasgdsfg</td></tr><tr><td><strong>NEW Content:</strong> </td><td>sdfgsdgf</td></tr></table></body></html>
EN

回答 7

Stack Overflow用户

发布于 2014-07-23 12:19:09

同样的问题是,发送下面的标题在一台服务器上生成一封HTML-电子邮件,但在另一台服务器上不起作用。

代码语言:javascript
复制
$headers  = 'From: xxx@xxx.org\r\n' .
            'MIME-Version: 1.0' . "\r\n" . 
            'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
            "X-Mailer: PHP";

事实证明,\r\n是服务器的重复行间隔。所以用\n作为线休息对我来说是有效的。

代码语言:javascript
复制
$headers  = 'From: xxx@xxx.org\n' .
            'MIME-Version: 1.0' . "\n" . 
            'Content-type: text/html; charset=iso-8859-1' . "\n" .
            "X-Mailer: PHP";
票数 4
EN

Stack Overflow用户

发布于 2011-08-15 06:09:29

PHP手动站点(这里)上有一个很好的例子,说明了如何做到这一点。试着复制并粘贴示例4。

看起来,您没有正确地发送字符串来标识标题中的内容类型。也许你应该在Gmail中做一个“显示原件”,如果你不能从手册中得到它,你也应该在这里张贴标题。

票数 3
EN

Stack Overflow用户

发布于 2012-03-16 14:07:54

看起来,MIME-Version后的空行表示标题已经结束,因此它将Content-Type行输出为常规文本,然后输出HTML,而不是将该行作为标题的一部分读取,以知道如何将其余内容转换为html。

代码语言:javascript
复制
MIME-Version: 1.0

Content-Type: text/html; charset=ISO-8859-1

<html><body>

尝试获取生成标题的任何内容,以删除MIME-VersionContent-Type之间的空行。(例如,您在这一行上有额外的\r\n吗?在生成这些行的地方,您的代码是什么样的?)还可以在Content-Type<html>之间添加第二个空行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7061991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档