2012-07-26 156 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等邮件服务用于将服务器分类为合法服务器。