2012-07-26 236 views
0

我想新註冊用戶的電子郵件驗證(PHP)的電子郵件,但我不明白,爲什麼會電子郵件被髮送到垃圾郵件,我已經簽出了類似的問題和所有答案是關於頭,PHP電子郵件垃圾郵件

這似乎有點複雜,我知道這些頭,他們是如何驗證,
通過發件人網站?可以說我以[email protected]的身份發送,而實際的服務器域名爲domain.com,它會如何知道?這是它發送垃圾郵件的主要原因之一嗎?
我正在使用VPS,它與它有什麼關係?
我只是想了解爲什麼會郵件被檢查爲垃圾郵件

什麼,如果我從服務器IP發送,而不是域本身

+0

您應該閱讀反垃圾郵件技術以瞭解您需要執行的操作。主要是SPF,其次是使用什麼標題,最後是正確的內容(發送HTML郵件時的文本替代版本) – ontrack 2012-07-26 09:32:09

+0

首先 - 標題,第二 - 內容,第三 - 質量。只包含一行文字的電子郵件可能是潛在的垃圾郵件。只包含3個字+鏈接的電子郵件比有效的電子郵件更多。反垃圾郵件檢查會查找此類規則。您的電子郵件是否超過一行? – jolt 2012-07-26 09:32:35

+0

可能的重複http://stackoverflow.com/questions/2032286/why-are-all-mails-sent-via-phps-mail-go-to-spam-box-but-not-mails-sent-direct和http://stackoverflow.com/questions/4309690/phpmail-always-go-to-spam – 2012-07-26 09:34:56

回答

0

1)檢查頭清除/簡單的原因。您可以使用任何電子郵件發送庫,如PHPMailer(http://code.google.com/a/apache-extras.org/p/phpmailer/wiki/PHPMailer#Documentation_and_Resources)

2)檢查託管服務器。如果您使用的是共享主機,那麼很可能它已被電子郵件域列入黑名單。

1

大多數郵件服務器會做Reverse DNS lookup防止domain.com人假裝是從otherdomain.com。它將檢查電子郵件發送的IP地址是否解析爲電子郵件發件人的相同域名。雅虎和其他大公司也將使用DKIM來驗證你。

通常你的消息可以在批量結束/垃圾郵件,如果它沒有太多的內容,或者如果你就差了很多相同內容的一個服務器。

下面是關於what web developers should know about sending email可以幫助你理解這個問題的好文章。

0

配置上的電子郵件地址,在[email protected]在下面的腳本您的Hotmail/Gmail的ID與新建郵件地址替換[email protected]

還與你的名字在下面的腳本替換Your Name和測試您的服務器上:

<?php 

    $myName = "Your Name"; 
    $myEmailAddressonDomain = "[email protected]"; 
    $myPreferredEmailAddresson = "[email protected]"; 
    $mail = $_POST['email_field']; 
    $clientName = $_POST['name_field']; 
    $subject = $_POST['subject_field']; 
    $text = $_POST['message_field']; 

    $headers = 'From: "$name" <$yourEmailAddressonDomain>'.PHP_EOL.'Reply-To: '.$_POST['mail'].PHP_EOL; 
    $to = '"$yourname" <$myPreferredEmailAddresson>'; 
    $message = $text.PHP_EOL.PHP_EOL."---".PHP_EOL."From: ".$name." <".$mail.">"; 

    /* Server-side form validations */ 
    $err = "Error with "; 


    if (!checkLen($name)) { 
     $err.='Name'; 
    } else if (!checkLen($mail) && !checkEmail($mail)) { 
     $err.='Email'; 
    } else if (!checkLen($subject)) { 
     $err.='Subject'; 
    } else if (!checkLen($text)) { 
     $err.='Message'; 
    } 

    if (strlen($err)>11) { 
     echo $err.' field'; 
     exit; 
    } 
    /* end validations */ 

    elseif (mail($to, $subject,$message, $headers)) { 
     echo "<span style='color: #336600'>Your message has been sent.</span>"; 
    } else { 
     echo "An error occurred, please try again."; 
    } 

    function checkLen($str,$len=1) 
    { 
     return isset($str) && mb_strlen(strip_tags($str),"utf-8") > $len; 
    } 

    function checkEmail($str) 
    { 
     return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); 
    } 


?> 

通過電子郵件將降落在您的Hotmail/Gmail收件箱(或任何非垃圾郵件)文件夾中的域電子郵件地址

注:點擊接收到的電子郵件回覆會告訴你的客戶的電子郵件地址(如我們在上面Reply-To頭已設置)

進行適當的修改,你是好去。

0

當您使用VPS時,您可以考慮在您的服務器上設置DKIMSPF,它們被Gmail等郵件服務用於將服務器分類爲合法服務器。