0
下面的代碼在發送到GMAIL,YAHOO,HOTMAIL時保留郵件格式,但在通過Outlook或Mozilla Thunderbird訪問時顯示空郵件時則保留相反的格式。PHP郵件程序如何保存文本格式
我試過N2blr但它給出了正確的結果。
有什麼想法?
$fp = fopen($attachment_temp, "rb");
$file = fread($fp, $attachment_size);
$file = chunk_split(base64_encode($file));
$num = md5(time());
//Normal headers
$headers = "From: ".$namefrom."<".$mailhost.">\r\n";
$headers .="Reply-To: ".$emailfrom."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";
// This two steps to help avoid spam
$headers .= "Message-ID: <".gettimeofday()." [email protected]".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
// With message
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "".$message."\n";
$headers .= "--".$num."\n";
// Attachment headers
$headers .= "Content-Type:".$attachment_type." ";
$headers .= "name=\"".$attachment_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$attachment_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
是的在看到您的評論和RDs後,似乎ISO已經提出了問題。它適用於此: $ headers。=「Content-type:text/html; charset = utf-8 \ r \ n \ r \ n」; $ headers。=「」.nl2br($ message)。「\ n」; $ headers。=「 - 」。$ num。「\ n」; –
這應該工作。缺少'\ r \ n'會阻止一些讀者意識到標題已經完成並且消息已經開始,從而使得它們不顯示消息正文的一部分(或全部)。 '$ headers'真的有點用詞不當。 – LSerni
感謝您的時間。 –