2011-07-04 196 views
3

我剛剛更新了一個聯繫表單以使用PHPMailer來阻止電子郵件被標記爲垃圾,但沒有運氣。PHPmailer發送垃圾郵件

這是一個相當直接的設置我使用,但它仍然會進入人民垃圾郵件。

這是我的腳本,我想知道是否有人可以告訴什麼是錯的?

include_once('../inc/phpmailer/class.phpmailer.php'); 

$mail = new PHPMailer(); 

$name = $_POST['name']; 
$email = $_POST['email']; 
$body = "Name: ".$name."\r\n"; 
$body .= "Email: ".$email."\r\n"; 
$body .= "Message: ".$_POST['message']; 

$mail->From  = "[email protected]"; 
$mail->FromName = "Contact BLah"; 

$mail->Subject = "Contact From: Blah"; 

$mail->Body = $body; 

$mail->AddAddress("[email protected]", "john"); 
$mail->AddAddress("[email protected]", "david"); 

if(!$mail->Send()) { 
    $errorMsg .= "Error sending message, please try again later."; 
} else { 
    $errorMsg .= "Message Sent successfully."; 
} 

我以爲PHPmailer通常會照顧插入正確的標頭嗎?

有什麼想法?

編輯:添加垃圾郵件分數

-Spam-狀態:「得分= 0.0試驗=無版本3.1.7 = cmae = V = 1.0 C = 1 = 8nJEP1OIZ-IA:10 一個= soyWjZv28gkhNSke5wm04A = =:17 = fqdOs_Nl9wd82e3SDigA:9 = 1- lynuxnH-gfU2bevBoA:7 一個= wPNLvfGTeEIA:10 = nymK5Bb5l1cA:10 = _6wjLm_vFSYA:10 XCAT =未定義/未定義」 X垃圾郵件級別:*

編輯2:我剛剛嘗試了與客戶端不同的服務器上的腳本,它具有相同的結果。我是否必須通過SMTP設置發送它不被歸類爲垃圾郵件?

+0

你有完全只是一個單一的孤獨收件人主機測試或你嘗試別人看到結果的範圍? – random

+2

php郵件程序,不負責製作垃圾郵件。 – Ibu

+0

我試過它通過各種主機,例如hotmail和其他域名電子郵件,並似乎都扔在垃圾。客戶的實際域名電子郵件根本沒有收到它。我認爲他們的垃圾郵件過濾器和防火牆阻止了它認爲是垃圾郵件 – hooligan

回答

0

這不一定是PHPMailer的錯,您的服務器被列入黑名單有幾種可能的原因。您可以檢查here,看看是否發生

+0

我剛剛通過該網站檢查了IP,它似乎都很好。我原本以爲也許是黑名單。我看不到這樣簡單的郵件可能是什麼。 – hooligan

12

您的郵件可以得到標記爲垃圾郵件的一些原因:

  1. 你發送垃圾郵件
  2. 你的IP,或者你周圍的IP地址的IP的塊已被標記作爲一個或多個黑名單上的垃圾郵件源
  3. 電子郵件的內容觸發垃圾郵件過濾器。
  4. 對方已經將你加入了黑名單
  5. 接收方未在您添加到他們的白名單
  6. 你發送的混合源郵件(「來源:[email protected]」,但它發送「someotherdomain.net」)
  7. 爲您的服務器的SPF記錄配置錯誤/不是在所有
  8. 域名密鑰配置的配置錯誤/沒有配置在所有

等等

PHPMailer是一個工具。把它看成是一把錘子。錘子可能彎曲了指甲,但只是因爲持用者瞄準的不正確。

解決此問題的唯一方法是檢查退回郵件(如果有)以及收件人郵箱中顯示的任何郵件。如果他們收到郵件,但它會進入垃圾郵件文件夾,然後獲取郵件副本並檢查其郵件頭。大多數垃圾郵件過濾器會將其垃圾郵件評分/推理放在那裏。

+0

感謝您的提示。我查看了電子郵件的消息來源,並提到了垃圾郵件分數。我將它添加到我的上述消息中 – hooligan

+0

查看該域以查看它是否列入黑名單:http://domain-blacklist.e-dns.org – Cymbals

7

小提示:

添加一條線,像這樣

$mail->AddReplyTo('[email protected]', 'Contact BLah'); 

應該顯著減少您的垃圾郵件等級。

1

我在使用PHPMailer時遇到了同樣的問題,下面是解決問題的方法:將發件人(與「發件人」不同且不同)發送給您要發送電子郵件的域的有效電子郵件帳戶從。這會導致PHPMailer正確設置「信封來源」信息,以便電子郵件通過SPF和發件人ID驗證。如果不這樣做,「信封來源」是一個操作系統用戶標識和服務器組合,它不會被驗證。

示例代碼:

$mail = new PHPMailer; 

$mail->From = '[email protected]'; 
$mail->Sender = '[email protected]'; 
...