0

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

这是我的代码:

/** 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);
4

2 回答 2

3

添加 MIME 版本对我有帮助

$headers.= "MIME-version: 1.0\n";
$headers.= "Content-type: text/html; charset= iso-8859-1\n";
于 2013-07-20T07:02:19.963 回答
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';
        }
于 2013-07-20T07:18:00.570 回答