gpt4 book ai didi

phpMailer 没有到达 Hotmail?

转载 作者:可可西里 更新时间:2023-11-01 12:36:57 24 4
gpt4 key购买 nike

设置 SPF 记录后,我仍然在这里验证为什么我无法收到此电子邮件到 hotmail 帐户。我可以毫无问题地将它发送到 gmail。请确认密码是否正确,SPF记录是否正确:

<?php 

require_once 'PHPmailer/class.phpmailer.php';
$mail = new PHPMailer();


$body = "Thankyou for your Purchase. <br/><br/> Here is your Policy! You are now Protected during your Travels.";

$mail->AddAddress('$payer_email');
$mail->From = "noreply@example.com";
$mail->FromName = "Name";
$mail->Subject = "Thankyou for Your Purchase";
$mail->MsgHTML($body);
$mail->AddAttachment("tosend/xxx.pdf");
if(!$mail->Send()) {
echo "There was an error sending the message";
$sql = "UPDATE purchases SET policy_sent = 'Not Sent' WHERE id = '$lastid' ";
$stmt = $mysqli->query($sql);
$mysqli->close();
exit;
}
echo "Message was sent successfully";
$sql = "UPDATE purchases SET policy_sent = 'Sent', email_to = '$payer_email' WHERE id = '$lastid'";
$stmt = $mysqli->query($sql);
$mysqli->close();
?>

这是 SPF:

v=spf1 a mx include:secureserver.net ~all

所有这些都配置正确了吗?

最佳答案

使用 SMTP Auth,Hotmail 就不会提示了。几乎所有接收服务器都将匿名邮件视为垃圾邮件。

$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host = "mail.yourdomain.com"; // sets the SMTP server
$mail->Port = 26; // set the SMTP port
$mail->Username = "yourname@yourdomain"; // SMTP account username
$mail->Password = "yourpassword"; // SMTP account password

但是当然。根据您是否可以控制您的 SMTP,您应该确保正确设置了诸如 reverse-dns-lookup 之类的基本内容


由于评论中的讨论,我想添加更多关于我的想法的信息,了解为什么 SMTP Auth 会解决这个问题:

如果您在没有定义 SMTP-Server 的情况下使用 PHPMailer,PHPMailer 将以 mail 模式运行,这将仅调用 php 的 mail() 函数。

邮件功能本身将使用 PHP-INI 文件中配置的 smtp 设置,或此处列出的默认值:http://php.net/manual/en/mail.configuration.php

默认值:

SMTP = "localhost" 
smtp_port = "25"

由于 OP 已经配置了本地邮件服务器(或者他为什么要设置 MX 记录?),php 现在将无需身份验证即可连接到此 SMTP 服务器。服务器将接受消息并将其发送到下一个服务器。

(如果使用 unix 的 sendmail,同样适用)

中的每个服务器,尤其是接收服务器现在可以看到,私有(private) SMTP 已被使用并且没有身份验证假如。这已经是 Spam-Score 超过 9000,因为有了这样的设置(理论上)每个人 都可以使用该服务器发送邮件!only from localhost 之类的限制是 ofc。其他服务器不知道,因此 SMTP 被认为是开放邮件中继 http://en.wikipedia.org/wiki/Open_mail_relay

将 PHPMailer 切换到 SMTP-Auth(即使仍然使用本地 SMTP 服务器)将在转发邮件时将此信息添加到服务器创建的条目中。条目将如下所示:

Received: from SERVER1 ([xxx.xxx.xxx.xx]) by mydomain.de with ESMTPA 

ESMTPA 之后的尾随 A 现在告诉接收服务器,Server1mydomain.de 上使用了有效的用户帐户 开始发送尝试,这意味着 SMTP 服务器知道邮件的来源并且可以提供有关发件人的信息。

仍然,本地 SMTP 服务器不是已知服务器,因此在这种情况下,它最终可能会被列入灰名单并检查各种 RBL,这在这种情况下应该不是任何问题。

如果(本地)SMTP 服务器现在通过了所有检查(反向 DNS 查找、灰名单、RBL 等等)- 即使没有使用远程 smtp,邮件也很有可能成功传递,因为可以成功验证服务器以及使用该服务器的发件人。 (否则没有公司可以架设自己的服务器)

因此,即使没有使用远程 SMTP 服务器,使用 SMTP-Auth(或任何其他身份验证方法)也会产生影响。

经过身份验证的邮件并不能保证不被视为垃圾邮件 - 但未经身份验证的邮件在常见系统的垃圾邮件分数中肯定排名较高。

关于phpMailer 没有到达 Hotmail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com