1

我正在尝试从我的网站向用户发送激活电子邮件。无论我做什么,电子邮件都会直接进入垃圾文件夹。

我已登录我的 cPanel,进入电子邮件身份验证并启用域密钥和 SPF,但无济于事。

还值得一提的是,我正在使用带有默认 mail() 类型的 PHPMailer 类。我尝试使用 sendmail,但它无法执行(共享主机),我尝试了 SMTP,但我没有详细信息(据我所知)。

还有什么我需要做的吗?

这是发送电子邮件供您参考的代码。

if (isset($_SESSION['registered'])) {
    require_once '/home/wwwmcser/public_html/inc/vendor/class.phpmailer.php';

    //mail
    $mail = new PHPMailer;
    $mail->SetFrom('team@mcserverranks.com','MCSR Team');
    $mail->AddReplyTo('noreply@mcserverranks.com','No Reply');
    $mail->AddAddress($_SESSION['userEmail'],$_SESSION['userName']);
    $mail->Subject = 'Verify your account || MCServerRanks';
    $mail->Body = "removed";
    $mail->AltBody = "removed";
    if (!$mail->Send()) {
        $_SESSION['mailErr'] = 'There was an error sending your mail. This has been reported. Please contact support for assistance.';
        error_log('Mailer Error: ' . $mail->ErrorInfo);
    }
    unset($_SESSION['userEmail']);unset($_SESSION['userName']);unset($_SESSION['activateHash']);
    //show page
    //rest of page is shown below, but I've removed that
4

3 回答 3

1

这是由于您发送邮件的主机地址和发件人地址存在违规行为。如果这两个地址不属于同一服务器,则邮件应用程序会将该邮件检测为垃圾邮件或垃圾邮件。

$mail->Host='mail.developerbaijan.com';
$mail->Username='developerbaijan@gmail.com';

由于主机和用户的不规范,这显然会导致垃圾邮件。如果发件人地址是这样,也可能以相同的方式结束邮件。

你应该这样尝试

$mail->Host='mail.google.com';
$mail->Port=587;
$mail->SMTPAuth=true;
$mail->SMTPSecure='tls';
$mail->Username='username@google.com';
$mail->Password='*********';
$mail->setFrom('username@google.com','name');
于 2020-03-11T02:31:37.537 回答
1

确保将 SPF 记录添加到 DNS TXT 记录。SPF 记录是相对于您用于探险的域所以如果您想从 IP 地址192.168.3.4以 user@foo.bar 的身份发送电子邮件,您需要创建(如果您不是 foo.bar 的管理员) foo.bar 的 DNS TXT 记录

v=spf1 +ip4:192.168.3.4 -all

这告诉远程服务器 foo.bar 域从 192.168.3.4 发送了合法的电子邮件,而所有其他来源只是假装是 foo.bar。

请注意,IP 可以是 ip4 或 ip6。

您还可以添加子网、FQDN 名称、MX 记录,或包括来自其他域的 SPF 记录,每个域使用单个 SPF 记录,其中包含所需数量的项目

请参阅SPF 文档

于 2017-08-09T13:57:34.323 回答
0

将您的地址设置为他们在自动电子邮件中的地址,以便他们从看似他们自己的电子邮件中收到一封电子邮件,标题为“需要身份验证..成功”等 - 这将防止垃圾问题,但可能会使一些人感到困惑客户,除非在现场指定

于 2013-06-09T07:49:42.403 回答