2011-07-11 25 views
2

我有一個郵件應用程序的問題,我目前正在使用PHP在Linux服務器上開發。在發送一封電子郵件給不同客戶端的一堆地址後,有時這些郵件不能被接收者讀取。 例如身體似乎開始與此:PHP郵件():標題出現在郵件正文中

boundary="=_2cac04098ebf51c342bd57eab2200e38" 
Message-ID: <lo5huc.id4ip6qutsch.lforce.de> 
Date: Mon, 11 Jul 2011 06:01:24 +0200 (CEST) 

--=_2cac04098ebf51c342bd57eab2200e38 

我真的不知道發生了什麼我的郵件。標題中的每一行由\n分隔,邊界條目具有前導\t。儘管客戶端似乎在解析我的頭文件時讀取了不在線的分行符。它也發生在標題的其他部分。

有沒有人有類似的問題?請幫幫我!

Andy

更新:我敢肯定,這是沒有編碼錯誤。我一直在編寫這個郵件的東西多年(甚至編寫我自己的郵件客戶端),它的工作完美。現在我們使用RMAIL類,它也來自一個更大的開源項目。我認爲這更像是我的系統配置問題......但這只是一個猜測。

+3

請顯示您的代碼。 – Cfreak

+0

看起來像一個MIME邊界。您是否使用圖書館(如PEAR :: Mail)發送電子郵件? – minichate

+0

它很長,並在太多的部分發布在這裏。這是這樣的: $ header。=「From:[email protected] \ nContent-Type:text/html \ n」 真的沒什麼特別的。 我使用純郵件()和郵件 – Andy

回答

0

確保正確單獨的每一個標題行,例如:

<?php 
    //To send HTML mail, the Content-type header must be set 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

    // Additional headers 
    $headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n"; 
    $headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n"; 
    $headers .= 'Cc: [email protected]' . "\r\n"; 
    $headers .= 'Bcc: [email protected]' . "\r\n"; 

    // Mail it 
    mail($to, $subject, $message, $headers); 
?> 
+0

和用PHP_EOL分隔線......我曾經有一眼一看,並認爲它可能發生,因爲發送文件本身(unix格式或dos格式)的存儲......但該錯誤再次出現。 – Andy

+0

那麼你是否嘗試了\ r \ n分隔符而不是僅僅使用\ n?這對我來說一直很好。我懷疑這是系統設置,因爲電子郵件已發送,只是您的內容在您的電子郵件應用程序中顯示問題。奇。 – Jules

0

我建議使用PHPMailer的,易於使用的,通吃nesseccery頭的護理,很容易附着發送多個收件人等

http://phpmailer.worxware.com/index.php?pg=phpmailer

+0

我很絕望...我會試試看,等一下。不幸的是,我無法重現這個錯誤。它不會發生在我的任何機器/設備上。只是在一些客戶的計算機上,大多運行Windows XP ... – Andy

+0

那麼,你應該找出他們使用的郵件客戶端。使電子郵件中的HTML按預期在所有郵件客戶端上工作並非易事......祝您好運! –