2013-05-17 2 views
0

Каков правильный способ создания электронной почты мультиплексирования mime для отправки с помощью почтовой функции PHP?Правильный формат отправки электронной почты с электронной почтой с использованием почты PHP

$boundary = uniqid(rand(), true); 

    $headers = "From: <[email protected]>\r\n"; 
    $headers .= "Reply-To: <[email protected]>\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: multipart/alternative; boundary=$boundary\r\n\r\n"; 
    $headers .= "This is a MIME encoded message.\r\n\r\n"; 
    $headers .= "--$boundary\r\n" . 
       "Content-Type: text/plain; charset=ISO-8859-1\r\n" . 
       "Content-Transfer-Encoding: base64\r\n\r\n"; 
    $headers .= chunk_split(base64_encode($plaintext)); 
    $headers .= "--$boundary\r\n" . 
       "Content-Type: text/html; charset=ISO-8859-1\r\n" . 
       "Content-Transfer-Encoding: base64\r\n\r\n"; 
    $headers .= chunk_split(base64_encode($body)); // chunk_split adds the ending "\r\n" 
    $headers .= "--$boundary--\r\n"; 
    //$headers .= ".\r\n"; 

    mail($to, $subject, '', $headers); 

Я попытался выше, но PHP, кажется, игнорирует его и вместо этого посылает это пустое письмо, которое я получаю на сервере:

... 
... 
To: <....> 
Subject: Test Email 
X-PHP-Originating-Script: 0:Mail.php 
From: <[email protected]> 
Reply-To: <[email protected]> 
MIME-Version: 1.0 
Content-Type: multipart/alternative; 
    boundary="1923630041519679ed1ddd25.14582240" 
Message-ID: <[email protected]> 
Date: Fri, 17 May 2013 14:41:49 -0400 
X-UI-Loop: V01:211ZxL2TMQ4=:uQC6SYy+5ULsBgI8/Yn6FAKnX8a66b5mzBQJFWhGo82c 
3a8ZtvbDIKAYJ3vIkfg3 

--1923630041519679ed1ddd25.14582240 
Content-Type: text/plain; charset="ISO-8859-1" 
Content-Transfer-Encoding: base64 


--1923630041519679ed1ddd25.14582240 
Content-Type: text/html; charset="ISO-8859-1" 
Content-Transfer-Encoding: base64 


--1923630041519679ed1ddd25.14582240-- 

Испытан на PHP 5.4.9.

ответ

0

Я получил приведенный выше код. Кажется, мне нужно было заменить все окна \r\n на linux \n. Я также удалил дубликаты строк после boundary="...".

Смежные вопросы