我正在尝试使用PHP创建一个文本/纯文本和文本/html格式的电子邮件。
我试着效仿这个例子:发送带有php纯文本和html的电子邮件
当我打开消息时,它是空白的。我正在使用PHP ()函数。
这是创建的电子邮件的来源:
From - Wed Jul 16 15:54:24 2014
X-Account-Key: account2
X-UIDL: UID17453-1394824486
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <energy@vps.corporations.org>
Envelope-to: aaron@campusactivism.org
Delivery-date: Wed, 16 Jul 2014 15:55:11 -0400
Received: from vps.corporations.org ([69.73.133.204]:35077)
by vortex.nocdirect.com with esmtps (TLSv1:DHE-RSA-AES256-SHA:256)
(Exim 4.82)
(envelope-from <energy@vps.corporations.org>)
id 1X7VIA-002zYn-7q
for aaron@campusactivism.org; Wed, 16 Jul 2014 15:55:11 -0400
Received: from energy by vps.corporations.org with local (Exim 4.82)
(envelope-from <energy@vps.corporations.org>)
id 1X7VI9-00022J-Rw
for aaron@campusactivism.org; Wed, 16 Jul 2014 15:55:05 -0400
To: aaron@campusactivism.org
Subject: New Test Subject -- aaron@campusactivsim.org--Test
X-PHP-Script: www.energyjustice.net/action/thanks.php for 68.57.17.14
From: d d <dad@dadssdd>
Reply-To: dad@dadssdd
X-Mailer: PHP/5.2.9
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="1kf9a19f031518xd151gkd"
Message-Id: <E1X7VI9-00022J-Rw@vps.corporations.org>
Date: Wed, 16 Jul 2014 15:55:05 -0400
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - vps.corporations.org
X-AntiAbuse: Original Domain - campusactivism.org
X-AntiAbuse: Originator/Caller UID/GID - [513 513] / [47 12]
X-AntiAbuse: Sender Address Domain - vps.corporations.org
X-Get-Message-Sender-Via: vps.corporations.org: authenticated_id: energy/only user confirmed/virtual account not confirmed
X-Spam-Status: No, score=-96.2
X-Spam-Score: -961
X-Spam-Bar: ---------------------------------------------------
X-Ham-Report: Spam detection software, running on the system "vortex.nocdirect.com", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email. If you have any questions, see
root\@localhost for details.
Content preview: --1kf9a19f031518xd151gkd Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit Text Mesage version goes here More text message
--1kf9a19f031518xd151gkd Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding:
7bit <html> <b> TEST</b> </html> [...]
Content analysis details: (-96.2 points, 8.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-100 USER_IN_WHITELIST From: address is in the user's white-list
-0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
domain
1.0 BAYES_40 BODY: Bayes spam probability is 20 to 40%
[score: 0.2211]
0.0 T_MIME_NO_TEXT No (properly identified) text body parts
2.8 MIME_PHP_NO_TEXT No text body parts, X-Mailer: PHP
X-Spam-Flag: NO
--1kf9a19f031518xd151gkd
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Text Message version goes here
More text message
--1kf9a19f031518xd151gkd
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
<html>
<b> TEST</b>
</html>
--1kf9a19f031518xd151gkd--我还尝试添加一个标题:使用邮件函数的Content-Transfer-Encoding: 7bit。但这没什么用。
发布于 2014-07-17 19:27:50
发送格式正确的电子邮件的标准是严格的。因此,使用SwiftMailer或其他库可能是最简单的。
也就是说,我用下面的电子邮件解决了我的问题。
一些关键因素--您需要在消息部分中的每个Content-Transfer-Encoding:头后面放一个空行。mail()函数有两个部分: 1)常规标头,2)必须包含在消息文本中的标头,以便正确格式化文本/纯文本和text/html消息。我在这一行中有几个空格应该是空白的,这会导致一个错误。在导致它失败的消息中,标题中还有其他几个空闲空间字符。
From - Thu Jul 17 15:20:45 2014
X-Account-Key: account2
X-UIDL: UID17590-1394824486
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <energy@vps.corporations.org>
Envelope-to: aaron@campusactivism.org
Delivery-date: Thu, 17 Jul 2014 15:21:37 -0400
Received: from vps.corporations.org ([69.73.133.204]:42354)
by vortex.nocdirect.com with esmtps (TLSv1:DHE-RSA-AES256-SHA:256)
(Exim 4.82)
(envelope-from <energy@vps.corporations.org>)
id 1X7rFE-001n6o-2z
for aaron@campusactivism.org; Thu, 17 Jul 2014 15:21:37 -0400
Received: from energy by vps.corporations.org with local (Exim 4.82)
(envelope-from <energy@vps.corporations.org>)
id 1X7rFC-0000pm-As
for aaron@campusactivism.org; Thu, 17 Jul 2014 15:21:30 -0400
To: aaron@campusactivism.org
Subject: New Test Subject -- aaron@campusactivsim.org--Test
X-PHP-Script: www.energyjustice.net/action/thanks.php for 68.57.17.14
From: e e <e3@e>
Reply-To: e3@e
MIME-Version: 1.0
X-Mailer: PHP/5.2.9
Content-Type: multipart/alternative;boundary="1kf9a19f031518xd151gkd"
Message-Id: <E1X7rFC-0000pm-As@vps.corporations.org>
Date: Thu, 17 Jul 2014 15:21:30 -0400
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - vps.corporations.org
X-AntiAbuse: Original Domain - campusactivism.org
X-AntiAbuse: Originator/Caller UID/GID - [513 513] / [47 12]
X-AntiAbuse: Sender Address Domain - vps.corporations.org
X-Get-Message-Sender-Via: vps.corporations.org: authenticated_id: energy/only user confirmed/virtual account not confirmed
X-Spam-Status: No, score=-101.9
X-Spam-Score: -1018
X-Spam-Bar: ---------------------------------------------------
X-Ham-Report: Spam detection software, running on the system "vortex.nocdirect.com", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email. If you have any questions, see
root\@localhost for details.
Content preview: charset="us-ascii" Content-Transfer-Encoding: 7bit Text Message
charset="iso-8859-1" Content-Transfer-Encoding: 7bit Html Message [...]
Content analysis details: (-101.9 points, 8.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-100 USER_IN_WHITELIST From: address is in the user's white-list
-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain
-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
[score: 0.0000]
0.0 HTML_MESSAGE BODY: HTML included in message
0.0 MISSING_MIME_HB_SEP BODY: Missing blank line between MIME header and
body
0.0 TVD_SPACE_RATIO TVD_SPACE_RATIO
X-Spam-Flag: NO
--1kf9a19f031518xd151gkd
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Text Message
--1kf9a19f031518xd151gkd
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
<html>
<b> Html Message</b>
</html>
--1kf9a19f031518xd151gkd--我的PHP代码:
$sMessage="--1kf9a19f031518xd151gkd
Content-Type: text/plain;
charset=\"us-ascii\"
Content-Transfer-Encoding: 7bit
Text Message
--1kf9a19f031518xd151gkd
Content-Type: text/html;
charset=\"iso-8859-1\"
Content-Transfer-Encoding: 7bit
<html>
<b> Html Message</b>
</html>
--1kf9a19f031518xd151gkd--";
//The email headers include the sender's name and email
$sHeaders = "From: ".$aRow['sFname']." ".$aRow['sLname']." <".$aRow['sEmail'].">" . " \r\n" .
"Reply-To: ".$aRow['sEmail']." \r\n" .
"MIME-Version: 1.0 \r\n" .
'X-Mailer: PHP/' . phpversion() ." \r\n" .
"Content-Type: multipart/alternative;".
"boundary=\"1kf9a19f031518xd151gkd\""."\r\n";
mail($value, $aRow_alert['sSubject'], $sMessage, $sHeaders);发布于 2014-07-16 22:08:01
如果您想使用PHP发送邮件,您可以做的最好的事情就是找到一个好的邮件处理库。当一群人已经为你简化了邮件处理的时候,为什么要把你的头脑重新创造出来呢?
我一直在从无到有地做这件事。我现在使用SwiftMailer。还有其他的--我已经尝试过很多--但这对我来说是最有效的。
https://stackoverflow.com/questions/24789582
复制相似问题