Пустое многочастное письмо - PullRequest
3 голосов
/ 31 августа 2011

Я использую PHP для отправки составного / смешанного сообщения (простой текст, html и вложения). Однако, хотя это работает для большинства учетных записей, Yahoo, GMail и Sky, похоже, показывают пустые электронные письма. Где, как и все остальное, кажется, для отображения электронной почты. ЛЮБАЯ ПОМОЩЬ БУДЕТ БОЛЬШОЙ ЦЕНИТЬ!

Мои заголовки

$headers .= "Content-Type: multipart/mixed; boundary=\"mixed-" . $random_hash . "-mixed\"\n";
$headers .= "MIME-Version: 1.0\n"; 

А содержание есть;

--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 голосов
/ 31 августа 2011

Это может быть артефакт от вставки, но попробуйте удалить пустое пространство в конце каждой границы. (Выделите текст, и вы заметите, что границы имеют дополнительный пробел, но закрывающие границы - нет)

2 голосов
/ 31 августа 2011

Пожалуйста, проверьте, выглядит ли ваш код следующим образом, потому что следующий код работает нормально для меня.

$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."--";
0 голосов
/ 31 августа 2011

Не создавайте свои собственные сообщения MIME. используйте Swiftmailer или PHPMailer , чтобы сделать это за вас.

...