空白的多部分电子邮件

3
我将使用PHP发送一个多部分/混合邮件(纯文本、HTML和附件)。然而,虽然它对大多数帐户有效,但Yahoo、GMail和Sky似乎显示空白电子邮件。其他所有内容都显示电子邮件。非常感谢您的任何帮助!
我的标头是:
$headers .= "Content-Type: multipart/mixed; boundary=\"mixed-" . $random_hash . "-mixed\"\n";
$headers .= "MIME-Version: 1.0\n"; 

And the content is;

--mixed-7df05b31-mixed  

Content-Type: multipart/alternative; boundary="alt-7df05b31-alt"  

--alt-7df05b31-alt 

Content-Type: text/plain; charset=utf-8 

            Hello how are you? I am just checking the mailing function.

            Hopefully this will work!

            Cheers.

--alt-7df05b31-alt 

Content-Type: text/html; charset=utf-8 

<div style="font-family:Arial, Helvetica, sans-serif; font-size: 10pt;">

<div> 


            Hello how are you? I am just <b>checking</b> the mailing function.<br><br>


            Hopefully this will work!<br><br>


            Cheers.</div></div>

--alt-7df05b31-alt--

--mixed-7df05b31-mixed 

Content-Type: text/plain; name="abc.txt"  
Content-Disposition: attachment; filename="abc.txt"   
Content-Transfer-Encoding: base64

SEVMTE8gSlVTVCBURVNUSU5HIC4uLiA=

--mixed-7df05b31-mixed--
3个回答

2
请确认您的代码是否与以下代码相似,因为以下代码对我来说可以正常工作。
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $msg."\r\n\r\n";    
$headers .= "--".$uid."\r\n";
$headers .= "Content-Type:application/html; name=\"".$filename."\" \r\n"; // use different content types here
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$headers .= $content."\r\n\r\n";
$headers .= "--".$uid."--";

2
可能是复制时的瑕疵,但请尝试删除每个边界末尾的空格。(选中文本,您会注意到边界有一个额外的空格,但关闭边界-没有)

0

因为你显然做错了什么。如果你的电子邮件构造正确,它应该可以在Gmail/Yahoo中正常显示 - 我还没有看到PHPMailer在我的所有项目中引起格式错误的情况,无论它在哪里被阅读。 - Marc B
2
虽然学习原始编程也有一定的价值,但我想知道你上面的代码有什么问题? - Pacerier
我也发现RMail是一个非常能干且易于使用的多部分电子邮件库。 - jorisw
1
在编程中,“不要这样做”很少是一个有效的答案。几乎总会有需要这样做的情况(比如在这种情况下,如果由于某些原因你无法集成外部库)。更合适的回答应该是:“我建议避免这样做,因为X原因,但如果你需要,这是如何做到的...” - lilHar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接