我正在使用PEAR mail_mime module的最新版本,我遇到了一个奇怪的问题。将HTML图像附加到电子邮件时,文本部分将无法正常工作。我的意思是“不正常”是因为如果我尝试在Thunderbird中查看邮件(或在PINE中查看邮件),它就不会显示我设置为电子邮件的“文本”部分;它试图以文本可读的方式解析HTML信息。 HTML部分中的所有内容都按预期工作。
这是我精简的代码:
//Headers
$headers['From'] = "from@address.com";
$headers['To'] = "to@address.com";
$headers['Subject'] = "A MIME Email";
//Text Portion
$text = "This is the text portion.";
//HTML Portion
$html = "<html><body><p><img src='image.png' />This is the HTML portion.</p></body></html>";
//Set up the MIME email
$mime = new Mail_mime(array('eol' => "\r\n"));
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addHTMLImage("/path/to/image.png", "image/png");
//Prepare the message to be sent
$body = $mime->get();
$headers = $mime->headers($headers);
//Send the message via SMTP
$mail_obj =& Mail::factory('smtp', array('host' => 'smtp.server.com', 'port' => 25));
$mail_obj->send("to@address.com", $headers, $body);
如果我注释掉addHTMLImage
行,则电子邮件的文本部分按预期工作,我可以看到我为非HTML视图设置的内容。但是,如果我取消注释该行,则文本部分将失败。查看我的消息来源,我可以看到文本部分始终存在。
以下是与此问题相关的消息来源部分:
Date: Thu, 26 May 2011 10:39:24 -0500 (CDT)
From: From Address <from@address.com>
Subject: A MIME Email
To: to@address.com
Message-id: <20110526153924.0C12120697@smtp.server.com>
MIME-version: 1.0
Content-type: multipart/alternative;
boundary="=_e107860f353617028a0059317ce51c1f"
Original-recipient: rfc822;to@address.com
--=_e107860f353617028a0059317ce51c1f
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=ISO-8859-1
This is the text portion.
--=_e107860f353617028a0059317ce51c1f
Content-Type: multipart/related;
boundary="=_52fd7475fcf0abd310b6a38cd33f5c46"
--=_52fd7475fcf0abd310b6a38cd33f5c46
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=ISO-8859-1
<html><body><p><img src='cid:3c0db5d0a50b8752771f64048f527338' />This is th=
e HTML portion.</p></body></html>
--=_52fd7475fcf0abd310b6a38cd33f5c46
Content-Transfer-Encoding: base64
Content-ID: <3c0db5d0a50b8752771f64048f527338>
Content-Type: image/png;
name=background.png
Content-Disposition: inline;
filename=background.png
iVBORw0KGgoAAAANSUhEUgAAAAEAABOICAYAAABwnAfKAAAAkUlEQVR42u3WSwrAIAwFwND7X9d1
eoHSb9TSzmYQSV5AXCRaa7lEROySJ+8uFd+8q2l73FEdkJNSRgR07q0uuVncJWBY6I9OWy85bKRB
7xo04TN8/vTO0OriziWFvcMCJqTMCui8rj5fuyMz43i1BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAIB/swItzir5J/ImiQAAAABJRU5ErkJggg==
--=_52fd7475fcf0abd310b6a38cd33f5c46--
--=_e107860f353617028a0059317ce51c1f--
我对如何解决这个问题感到茫然。任何机构遇到类似问题或有任何建议吗?
答案 0 :(得分:1)
这是你的邮件阅读器。如果启用了HTML邮件,它会隐藏文本邮件。在Gmail中,您可以查看详细信息,或者您可以在仅文本电子邮件阅读器中进行检查