2012-08-30 104 views
5

我知道這個問題已經在這裏解決了幾次。我試着按照指示設置正確的標題,我仍遇到我的電子郵件進入Gmail中的垃圾郵件過濾器的問題。PHP郵件()表格發送到GMAIL垃圾郵件

如果有人可以請看看我試過的東西,我會非常感激。下面的代碼是沒有標頭添加,如解釋在這裏:​​

在此先感謝。

define("WEBMASTER_EMAIL", '[email protected]'); 
if($post) 
{ 
    $name = stripslashes($_POST['name']); 
    $email = trim($_POST['email']); 
    $subject = trim($_POST['subject']); 
    $message = stripslashes($_POST['message']); 

    $error = ''; 

    // Check name 
    if(!$name) 
     $error .= 'Name required! '; 

    // Check email 
    if(!$email) 
     $error .= 'E-mail required! '; 

    if($email && !ValidateEmail($email)) 
     $error .= 'E-mail address is not valid! '; 

    // Check message 
    if(!$message) 
     $error .= "Please enter your message!"; 

    if(!$error) 
    { 

     $mail = mail(WEBMASTER_EMAIL, $subject, $message, 
      "From: ".$name." <".$email.">\r\n" 
      ."Reply-To: ".$email."\r\n" 
      ."X-Mailer: PHP/" . phpversion()); 

     if($mail) 
      echo 'OK'; 
    } 
    else 
     echo '<div class="errormsg">'.$error.'</div>'; 
} 
+0

我不知道答案'爲什麼會發生,但我有一個想法。以正常的方式給自己發送一封電子郵件,檢查其原始內容,然後檢查使用php發送的電子郵件的內容。 SOmething可能缺失。 – Grzegorz

+1

它可能只是您的消息的性質。沒有魔術頭,這將使電子郵件永遠不會被標記爲垃圾郵件。 – 2012-08-30 00:30:51

+3

錯誤的標題不是消息被垃圾郵件提交的唯一原因。其他問題,如內容,在發送主機上執行的反向DNS查找等等都有所貢獻。 –

回答

9

使用此代碼

$to = Email; 
$subject = subject ; 
$body = "<div> hi hi .. </div>"; 

    $headers = 'From: YourLogoName [email protected]' . "\r\n" ; 
    $headers .='Reply-To: '. $to . "\r\n" ; 
    $headers .='X-Mailer: PHP/' . phpversion(); 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
if(mail($to, $subject, $body,$headers)) { 
    echo('<br>'."Email Sent ;D ".'</br>'); 
    } 
    else 
    { 
    echo("<p>Email Message delivery failed...</p>"); 
    } 
+4

發佈時可能已經很好。不幸的是,今天,這被抓到Gmail垃圾郵件。 – Sparky

+2

直接進入垃圾郵件框 – TomSawyer

+0

,打破了這麼多規則,這並不好笑。 – Jasen

4

我覺得這是你的問題:

"From: ".$name." <".$email.">\r\n" 

,因爲你不屬於Gmail,Hotmail或你的用戶的電子郵件服務提供商,你不能有「來源:otherdomain.com」,然後通過投遞郵件「mail.yourdomain.com」 - 這很可能會將您的郵件移動到垃圾郵件文件夾。

嘗試

"From: YourWebsiteName <[email protected]>\r\n" 
."Reply-To: ".$name." <".$email.">\r\n" 

代替。

ALso:您的代碼非常不安全,是一個主要的垃圾郵件目標 - 谷歌「電子郵件標頭注入PHP」!

0

谷歌往往管教不僅網站,但也誰使用有很多用戶通過網絡發送垃圾郵件服務提供商。 如果你對這個服務提供商之一的谷歌稱爲垃圾郵件發送者,這可能是你的PHP郵件()郵件下降到Gmail中的垃圾郵件框的原因。嘗試與您的服務器提供商聊聊這個問題。

在這種情況下,你會得到谷歌的警告在你的「垃圾郵件」的消息:

「爲什麼此郵件爲垃圾郵件我們發現很多消息從 home.pl是垃圾郵件。瞭解更多「

相關問題