当前位置:  开发笔记 > 编程语言 > 正文

使用PHP发送多部分/备用电子邮件的问题

如何解决《使用PHP发送多部分/备用电子邮件的问题》经验,为你挑选了1个好方法。

这是构建/发送电子邮件的脚本:

$boundary = md5(date('U'));

$to = $email;
$subject = "My Subject";

$headers = "From: myaddress@mydomain.com" . "\r\n".
           "X-Mailer: PHP/".phpversion() ."\r\n".
           "MIME-Version: 1.0" . "\r\n".
           "Content-Type: multipart/alternative; boundary=--$boundary". "\r\n".
           "Content-Transfer-Encoding: 7bit". "\r\n";

$text = "You really ought remember the birthdays";     
$html = '
    
      Birthday Reminders for August
    
    
      

Here are the birthdays upcoming in August!

PersonDayMonthYear
Joe3rdAugust1970
Sally17thAugust1973
'; $message = "Multipart Message coming up" . "\r\n\r\n". "--".$boundary. "Content-Type: text/plain; charset=\"iso-8859-1\"" . "Content-Transfer-Encoding: 7bit". $text. "--".$boundary. "Content-Type: text/html; charset=\"iso-8859-1\"". "Content-Transfer-Encoding: 7bit". $html. "--".$boundary."--"; mail("toAddress@example.com", $subject, $message, $headers);

它发送消息就好了,我的收件人收到了它,但是他们用text/plain而不是multipart/alternative来获取整个内容.查看收到的消息的来源给出了这一点(删除了许多内容):

Delivered-To: myrecipient@example.com
Received: by 10.90.100.4 with SMTP id x4cs111413agb;
    Wed, 25 Mar 2009 16:39:32 -0700 (PDT)
Received: by 10.100.153.6 with SMTP id a6mr85081ane.123.1238024372342;
    Wed, 25 Mar 2009 16:39:32 -0700 (PDT)
Return-Path: 
--- snip ---
Date: Wed, 25 Mar 2009 17:37:36 -0600 (MDT)
Message-Id: <200903252337.n2PNbaw2019541@www.xxxxxxx.com>
To: trevor@saturdayplace.com
Subject: My Subject
From: me@mydomain.com
X-Mailer: PHP/4.3.9
MIME-Version: 1.0
Content-Type: text/plain;
boundary="--66131caf569f63b24f43d529d8973560"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 25 Mar 2009 23:38:30.0531 (UTC) FILETIME=[CDC4E530:01C9ADA2]
X-TM-AS-Product-Ver: SMEX-8.0.0.1181-5.600.1016-16540.005
X-TM-AS-Result: No--4.921300-8.000000-31
X-TM-AS-User-Approved-Sender: No
X-TM-AS-User-Blocked-Sender: No


Multipart Message coming up

--66131caf569f63b24f43d529d8973560
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

You really ought remember the birthdays

--66131caf569f63b24f43d529d8973560
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit


    
      Birthday Reminders for August
    
    
      

Here are the birthdays upcoming in August!

PersonDayMonthYear
Joe3rdAugust1970
Sally17thAugust1973
--66131caf569f63b24f43d529d8973560--

看起来内容类型标题在从multipart/alternative到text/plain的过程中发生了变化.我不是系统管理员,所以如果这是一个sendmail问题,我就会在我脑海中.有什么建议?



1> Greg..:

这条线

"Content-Type: multipart/alternative; boundary=--$boundary". "\r\n".

应该

"Content-Type: multipart/alternative; boundary=$boundary". "\r\n".

您不在标题中包含短划线.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有