phpMailer 未到达 Hotmail?

2024-04-04

设置 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 = "[email protected] /cdn-cgi/l/email-protection";
$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

但是ofc。取决于您是否可以控制 SMTP,您应该确保反向 dns-lookup 等基本内容已正确设置


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

如果您在没有定义 SMTP 服务器的情况下使用 PHPMailer,PHPMailer 将在mail模式,这只会调用mail()php 的函数。

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

默认值:

SMTP = "localhost" 
smtp_port = "25" 

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

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

中的每个服务器chain尤其是接收服务器现在可以看到,private已使用 SMTP 并且no已提供身份验证。 这已经是 Spam-Score 超过 9000 的原因了,因为这样的设置(理论上)everyone可以使用该服务器发送邮件! 限制如仅来自本地主机是ofc。其他服务器不知道,因此 SMTP 被认为是打开邮件中继 http://en.wikipedia.org/wiki/Open_mail_relay http://en.wikipedia.org/wiki/Open_mail_relay

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

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

尾随的A after ESMTPA现在告诉接收服务器,Server1已使用有效的用户帐户mydomain.de开始尝试发送,这意味着 SMTP 服务器knows邮件的来源,并可以提供有关发件人的信息。

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

如果(本地)SMTP 服务器现在通过了所有检查(反向 DNS 查找、灰名单、RBL 等) - 即使不使用远程 smtp,邮件也很有可能成功投递,因为服务器可能会以及使用该服务器的发件人已成功通过身份验证。 (否则任何公司都无法建立自己的服务器)

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

phpMailer 未到达 Hotmail? 的相关文章

  • proc_open() 失败并显示“权限被拒绝”

    我正在尝试使用proc open 执行程序并打印结果 但是 我不断收到 许可被拒绝 的消息 已将脚本和可执行文件的 chmod 设置为 0777 但无济于事 ini get safe mode 是假的 可能出什么问题了 我正在使用 Cent
  • foreach 循环中 current() 的意外行为[重复]

    这个问题在这里已经有答案了 这是一个简单的循环 list array A B C D foreach list as var print current list Output demo http 3v4l org sBDjl BBBB O
  • MVC和依赖注入,被迫使用单例Controller?

    我正在致力于构建一个根据 MVC 原则运行并利用依赖注入的 PHP 框架 我想我已经把前端控制器部分放下了 有一个工作路由器实例化控制器实例并根据请求的 URI 调用适当的操作 接下来是依赖注入 我想实现一个使用反射解决依赖关系的容器 这样
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • 从远程托管上的 PHP 获取 PHP 错误日志

    是否有 PHP 函数或其他方式以字符串形式获取 PHP 错误日志 我需要这个 因为我无法访问在其他人的服务器上运行的站点的错误日志 他提出通过电子邮件将错误日志发送给我 但这不太方便 有什么方法可以将错误日志输出到 PHP 页面吗 我意识到
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • 没有得到 popen 的完整回复

    嗨 我正在使用 popen 运行一个进程 handle popen python scriptos py r while feof handle data fgets handle echo gt data 我只从返回 5 行的进程中获取
  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 管理面板的 htaccess 重写规则

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • PHP MVC 应用程序中哪里可以捕获异常?

    我有一个中小型 PHP 应用程序 用于练习 OOP 和 MVC 技能 我有初始化 引导程序调用的文件Router谁打电话控制器 gt 服务层 gt 存储库 数据库 然后将变量发送回视图层 所有依赖项均由 DiC IOC 处理 我创建抽象类
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • Monolog,如何将 PHP 数组记录到控制台?

    我正在使用浏览器处理程序将消息记录到 JS 控制台 require once vendor autoload php use Monolog Logger use Monolog Handler BrowserConsoleHandler

随机推荐

  • vue-loader:如何在 webpack 4 和 vue-cli3 中使用 vue-loader v15

    我使用的是最新版本的 vue cli3webpack4 and vue loader v15 我要配置vue loader 但是有一个错误 Error VueLoaderPlugin Error No matching use for vu
  • 将多行合并为一行

    我想知道将以下行的数据合并到另一个视图中的单行的最佳方法 这些是当前显示的结果 Type ID Client ID PBX Vendor 127 090820006311404926326C Aastra 127 0908200063114
  • Encog/neuroph 保存神经网络

    我是神经网络领域的新手 说实话 我几天前才开始 我想在我的 OCR 应用程序中使用神经网络来识别手写文本 我想知道的是 是否可以在初始训练后训练网络 换句话说 我将在开始时训练几个字符 但我想稍后向网络添加更多字符 而不影响之前训练的数据的
  • System.Text.Json 中的 DefaultContractResolver 等效项

    我正在从 Newtonsoft 转换一些逻辑 并找到以下实现之一 public class CustomDataContractResolver DefaultContractResolver public Dictionary
  • 带有过滤条件的 LINQ 连接

    linq 中是如何完成这样的事情的 它在 JOIN 上有过滤条件 这是摘自这个问题 SQL过滤条件在连接条件或where子句中哪个更有效 https stackoverflow com questions 1401889 sql filte
  • React Redux:如何处理 RTK 查询/突变打字稿中的错误?

    我正在使用带有 RTK 突变的 Typescript 一切正常 但如果我以特定 JSON 格式从后端发送任何错误 例如 status Error message Something went wrong 当我检查浏览器网络选项卡时 它会向我
  • 使文本框不可编辑

    使用 C asp net 与 05 进行比较 我有一个要求 我必须在文本框中填充 gridview 上的一些数据 这些数据来自数据库并使其只读 此后 用户无法在 gridview 模板字段上输入任何文本 如果我设置文本框Enabled fa
  • 在连接的自定义字段上使用过滤表达式时 SSS_INVALID_SRCH_FILTER_JOIN

    SuiteScript v1 搜索项目记录类型 customrecord sp ecom item infoseo 是自定义记录类型 具有一个名为 custrecord sp ecom item seo 的字段 该字段引用项目记录 它还具有
  • char* 和 std::uint8_t* 之间的reinterpret_cast - 安全吗?

    现在我们有时都必须使用二进制数据 在 C 中 我们使用字节序列 并且从一开始char是我们的基石 定义为有sizeof为 1 时 它是字节 所有库 I O 函数都使用char默认情况下 一切都很好 但总是有一点担心 一点奇怪的事情困扰着一些
  • XSLT 2.0 将 CSV 转换为 XML 格式

    我正在尝试将 CSV 逗号分隔文件 转换为 XML 为此 我正在编写一个 XSLT 模板 这是我第一次尝试 XSLT CSV 示例 ClaimRef HandlerRef ClaimType Date Area SettleDate Cla
  • PHP:获取图像大小

    我正在写一个函数 它需要一个参数 该参数是服务器上图像的物理路径 我想知道是否有可能以任何方式获得其原始大小 以像素为单位 在一个变量中 我想存储它的宽度 在另一个变量中存储它的高度 让我问这个问题的挑战是因为我必须在服务器端获取它 因此任
  • 向 pandas 的日期时间列随机添加 10 到 40 分钟

    我有一个数据框 如下所示 start 2010 01 06 09 00 00 2018 01 07 08 00 00 2012 01 08 11 00 00 2016 01 07 08 00 00 2010 02 06 14 00 00 2
  • 使用nodejs创建OAuth2服务器

    我实际上正在研究 REST API 安全性 似乎很多人都在使用 OAuth2 和 OpenId 协议来管理身份验证 我尝试使用以下方法实现两个 OAuth2 服务器 http passportjs org http passportjs o
  • 使用 adb 刷新 Android mediastore

    我正在使用 adb 在 Android 手机上同步音乐 本质上 我管理现有的音乐目录并推送替换音乐文件 我希望能够使用 adb 强制重新扫描 以便谷歌音乐播放器 和其他应用程序 能够与新歌曲和播放列表正常工作 根据如何刷新 Android
  • 如何以编程方式创建联系人[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Android 中添加新联系人 https stackoverflow com questions 4744187 how to add new contacts in android pub
  • 如何使用 python smtplib 向多个收件人发送电子邮件?

    经过大量搜索后 我无法找到如何使用 smtplib sendmail 发送给多个收件人 问题是每次发送邮件时 邮件标头都会显示包含多个地址 但实际上只有第一个收件人会收到电子邮件 问题似乎在于email Message http docs
  • 如何在 React 中使用 Firebase App Check。 403错误

    我想在 Gatsby 项目中使用 Firebase App Check 我已在 Firebase 控制台中完成了应用程序注册 在我的项目中 import initializeApp from firebase app import init
  • 评估给定文本块的关键字密度

    我想使用 php 将关键字短语传递给函数 并让该函数解析文本块并返回输入短语的关键字密度占文本块总字数的百分比 text lorem ipsum etc keyword lorem ipsum word count explode text
  • C++ 模板:防止基础模板的实例化

    我有一个界面 std string get string Source const s std string const d int get int Source const s int const d bool get bool Sour
  • phpMailer 未到达 Hotmail?

    设置 SPF 记录后 我仍然在这里验证为什么我无法将这封电子邮件接收到 hotmail 帐户 我可以毫无问题地将其发送到 Gmail 请确认代码是否正确 SPF记录是否正确