2010-04-05 130 views
2

前幾天我升級了Php梅勒,現在一些電子郵件提供商我的郵件標記爲垃圾郵件。這是我在標記的消息的標題中看到的:Php梅勒問題 - 郵件標記爲垃圾郵件 -

X-SpamTest-Info: {TO: header missing} 

這是從我的php文件。

$mail->From  = $sender; 
$mail->FromName = $sender_name; 
$mail->Subject = $subject; 
$mail->Body  = $body; 
$mail->AddAddress($recipient,$recipient_name); 
$mail->AddReplyTo($replyto,"No-Reply"); 

不知道如何添加「到」頁眉和無法理解它是如何可能「到」被失蹤,但郵件到達正確的「到」地址...

回答

1

很容易郵件發送時沒有「To:」標題,因爲實際上這裏有兩件事。 「To:」標題真的只有人類才能看到 - 實際交付由所謂的「信封」控制。當您以正常的郵件程序發送郵件時,它會啓動一個SMTP轉換,其中包含「收件人」標題,「CC」標題和「BCC」中列出的地址,剝離BCC標題,並說明SMTP接收方「RCPT TO:address1,address2,...」,SMTP接收方知道發送給誰,而不必查看標題。它僅查看標題以進行垃圾郵件檢查,因爲缺少To標頭的郵件通常表示垃圾郵件。

如果沒有可供郵件傳輸代理訪問但不是最終用戶及其郵件用戶代理的信封,則不可能使用BCC。

我不知道PHP Mailer的語法,但它支持「$ mail-> To」設置嗎?

+0

在Php Mailer中沒有這樣的函數「to」。這是他們的示例代碼: $ mail-> AddReplyTo('[email protected]','First Last'); $ mail-> AddAddress('[email protected]','John Doe'); $ mail-> SetFrom('[email protected]','First Last'); $ mail-> AddReplyTo('[email protected]','First Last'); $ mail-> Subject ='Test'; $ mail-> AltBody ='Alt Body'; $ mail-> MsgHTML(file_get_contents('contents.html')); $ mail-> AddAttachment('images/phpmailer.gif'); //附件 $ mail-> Send(); – user 2010-04-05 16:37:31

1

幾個要點從previous answer

  • 最重要的是:是否發件人地址(「發件人」)屬於該服務器上運行的域您發送電子郵件?如果沒有,就這樣做。千萬不要使用像[email protected]這樣的發件人地址。用戶reply-to如果您需要回復才能到達不同的地址。

  • 您的服務器是否在黑名單上(例如,檢查spamhaus.org上的IP)?當你在共享主機上時,這是一種可能性,當鄰居表現不佳時。

  • 郵件是否被垃圾郵件過濾器過濾?在有垃圾郵件文件夾的freemailer上打開一個帳戶並找出。此外,請嘗試將郵件發送到地址,而不進行任何垃圾郵件過濾。

  • 您是否可能需要郵件()的第五個參數「-f」來添加發件人地址? (請參閱PHP手冊中的mail()命令)

  • 如果您有權訪問日誌文件,請檢查這些日誌文件。

  • 您是否在可能的退回郵件(「退回發件人」)時檢查「from:」地址?您還可以設置單獨的「錯誤至」地址。
+0

如果您必須使用虛假的'From:'標題,請添加來自您的域的'Sender:'標題。這是Gmail從頭文件中刪除的內容。有用。 – TRiG 2010-10-14 10:35:04

1

不知道如何添加「到」頁眉和 不明白它是如何可能 說「到」被失蹤,但電子郵件到達 正確「到」地址...

這一行需要的是

$mail->AddAddress($recipient,$recipient_name); 

照顧它實際上創造了TO頭的電子郵件。