0

我正在尝试向新注册用户发送电子邮件以进行电子邮件验证(PHP),但我不明白,为什么会向垃圾邮件发送电子邮件,我已经检查了类似的问题,所有答案都是关于标题的,

让我知道这些标题似乎有点复杂,它们是如何
通过发件人网站验证的?假设我以 user@google.com 的身份发送,实际的服务器域是 domain.com,它怎么知道?它是垃圾邮件的主要原因之一吗?
我正在使用VPS,它与它有什么关系?
我只是想了解为什么将电子邮件检查为垃圾邮件

以及如果我从服务器 IP 而不是域本身发送的明确/简单原因

4

4 回答 4

1

大多数邮件服务器都会进行反向 DNS 查找,以防止来自 domain.com 的人假装来自 otherdomain.com。它将检查发送电子邮件的 IP 地址是否解析为与电子邮件发件人相同的域名。雅虎等大公司也会使用DKIM来验证你。

如果您的邮件内容不多,或者您向一台服务器发送了很多相同的内容,您的邮件通常会以批量/垃圾邮件告终。

这是一篇很好的文章,介绍了 Web 开发人员应该了解的有关发送电子邮件的知识,这可能有助于您理解该主题。

于 2012-07-26T09:37:58.363 回答
0

1)检查标题。您可以使用任何电子邮件发送库,例如 PHPMailer (http://code.google.com/a/apache-extras.org/p/phpmailer/wiki/PHPMailer#Documentation_and_Resources)

2) 检查托管服务器。如果您使用的是共享主机,那么很可能它已被电子邮件域列入黑名单。

于 2012-07-26T09:37:31.483 回答
0

在您的域上配置一个电子邮件地址,用您在您的域me@mydomain.com上新创建的电子邮件地址和以下脚本中的 Hotmail/Gmail id 替换。id@hotmailOrgmail.com

Your Name还要在以下脚本中替换为您的姓名并在您的服务器上进行测试:

<?php

    $myName = "Your Name";
    $myEmailAddressonDomain = "me@mydomain.com";
    $myPreferredEmailAddresson  = "id@hotmailOrgmail.com";
    $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上面的标题中设置的那样)

进行适当的更改,您就可以开始了。

于 2012-07-26T09:53:51.063 回答
0

当您使用 VPS 时,您可以考虑在您的服务器上设置DKIMSPF,它们会被 Gmail 等邮件服务用来将您的服务器归类为合法服务器。

于 2012-08-10T12:42:16.173 回答