如何避免通过php发送的垃圾邮件进入垃圾邮件文件夹?

时间:2013-07-20 06:51:59

标签: php email email-spam

我有一个流程,会在注册到我的网站后向用户发送带有确认链接的电子邮件。但邮件进入电子邮件的垃圾邮件文件夹。我尝试了许多来自互联网的代码,但似乎都没有。任何帮助将不胜感激。

这是我的代码:

/** Check Spam**/
$mailcheck = spamcheck($_POST['email']);
if ($mailcheck == FALSE) {
    browse ("Invalid input");
}else{
$to = $email;
$subject = "Please Verify Your Email Address";
$header = "From: example@example.com";
$message.= "Please Click On The Link Below To Confirm Your Email Address With Us";
$message.=" ";
$message.= "www.mylink.com/subdomain/verification.php?user_verification=$code";

$sendmail = mail($to,$subject,$message,$header);

2 个答案:

答案 0 :(得分:3)

添加MIME版本帮助我

$headers.= "MIME-version: 1.0\n";
$headers.= "Content-type: text/html; charset= iso-8859-1\n";

答案 1 :(得分:2)

  • 确保您的电子邮件中没有白色文字,这几乎可以保证 垃圾邮件决定
  • 如果您在共享主机上,请考虑为自己购买一个独特的IP, 因为使用您的IP的其他人可能已将您的IP列入黑名单 垃圾邮件
  • 确保每个提供商不会向每个提供商发送超过250封电子邮件 小时,因为您(IP)的声誉随电子邮件提供商而增长 你可以提高这个数字
  • 为用户取消订阅链接并在浏览器链接中查看(如果有) 无法正常查看电子邮件,如果不是,他们会将您标记为垃圾邮件 想要更长时间的电子邮件,他们会将您标记为垃圾邮件。结果是 相同;被标记为垃圾邮件会使您的电子邮件更有可能发生 将来直接进入提供商的垃圾邮件文件夹

此类代码可用于建立电子邮件提供商;

        $exploded  = explode('@', $To);
        $exploded2 = explode('.', $exploded[1]);

        switch (strtolower($exploded2[0]))
        {
            case 'hotmail':    $Network = 'Microsoft'; break;
            case 'outlook':    $Network = 'Microsoft'; break;
            case 'live':       $Network = 'Microsoft'; break;
            case 'gmail':      $Network = 'Google'; break;
            case 'googlemail': $Network = 'Google'; break;
            case 'yahoo':      $Network = 'Yahoo'; break;
            case 'ymail':      $Network = 'Yahoo'; break;
            case 'rocketmail': $Network = 'Yahoo'; break;
            case 'aol':        $Network = 'AOL'; break;
            case 'talktalk':   $Network = 'TalkTalk'; break;
            default:           $Network = 'Other';
        }