首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在PHP中创建文本/html电子邮件

尝试在PHP中创建文本/html电子邮件
EN

Stack Overflow用户
提问于 2014-07-16 20:00:40
回答 2查看 975关注 0票数 0

我正在尝试使用PHP创建一个文本/纯文本和文本/html格式的电子邮件。

我试着效仿这个例子:发送带有php纯文本和html的电子邮件

当我打开消息时,它是空白的。我正在使用PHP ()函数。

这是创建的电子邮件的来源:

代码语言:javascript
复制
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。但这没什么用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-17 19:27:50

发送格式正确的电子邮件的标准是严格的。因此,使用SwiftMailer或其他库可能是最简单的。

也就是说,我用下面的电子邮件解决了我的问题。

一些关键因素--您需要在消息部分中的每个Content-Transfer-Encoding:头后面放一个空行。mail()函数有两个部分: 1)常规标头,2)必须包含在消息文本中的标头,以便正确格式化文本/纯文本和text/html消息。我在这一行中有几个空格应该是空白的,这会导致一个错误。在导致它失败的消息中,标题中还有其他几个空闲空间字符。

代码语言:javascript
复制
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代码:

代码语言:javascript
复制
$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);
票数 0
EN

Stack Overflow用户

发布于 2014-07-16 22:08:01

如果您想使用PHP发送邮件,您可以做的最好的事情就是找到一个好的邮件处理库。当一群人已经为你简化了邮件处理的时候,为什么要把你的头脑重新创造出来呢?

我一直在从无到有地做这件事。我现在使用SwiftMailer。还有其他的--我已经尝试过很多--但这对我来说是最有效的。

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

https://stackoverflow.com/questions/24789582

复制
相关文章

相似问题

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