php @mail发送的消息无法解析html

时间:2014-12-04 14:28:51

标签: php html email centos

我正在将一个Web服务器从托管服务器移植到Centos上的私有服务器,我正在尝试调整每个东西。现在我想通过@mail发送电子邮件;我设法通过对配置进行一些调整来实现,但是当客户端显示消息时,它会显示html源而不是显示它。消息的来源,我在底部报告的一部分,似乎很好;它会是什么?

-PHP-Originating-Script: 500:mailListItInarrivo.php
From: info@inarrivo.net
Reply-To: info@inarrivo.net
Content-Type: multipart/alternative; boundary="PHP-alt-ac65ac6e336bbb702036bb1b60fa2bc6"

--PHP-alt-ac65ac6e336bbb702036bb1b60fa2bc6
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-   strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

正如您所看到的,html部分缺少: --PHP-alt-531031ef9065eeb8948b4338f95fdd14部分。 但这更有趣,因为php脚本与旧脚本相同并且命令存在:

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<?php echo $greeting; ?>
<?php echo $content; ?>
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

1 个答案:

答案 0 :(得分:1)

不要发送有冲突的哑剧类型:

--PHP-alt-ac65ac6e336bbb702036bb1b60fa2bc6
Content-Type: text/plain; charset="iso-8859-1"    <--- it's a bird!
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset="iso-8859-1"     <--- it's a plane!

由于您获得原始HTML代码,显然FIRST内容类型是在您的邮件客户端中生效的内容类型。