wordpress实现站内邮件发送插件WP Mail SMTP

wordpress内要实现诸如注册时候邮箱验证、评论通知、异常通知或一些插件自带的邮件通知功能都需要smtp的邮件发送功能。

#准备工作

  • 注册一个免费的企业邮箱。网易、腾讯、阿里都有提供。
  • wordpress内安装插件WP Mail SMTP。

#简单配置WP Mail SMTP

这里以网易免费企业邮箱为例。(其他品牌的企业邮箱请自行查询)

SMTP主机:smtp.ym.163.com
加密:SSL
SMTP端口:994 (无SSL的端口为25)
自动TLS:默认选项
认证:默认选项
SMTP用户名:就是邮箱名
SMTP密码:就是邮箱密码

#配置DMARC

关于DMARC是什么可以看我站另一篇博文,什么是 DMARC 记录以及如何创建一个案例

如果您使用的是WP Mail SMTP,您还可以通过发送测试电子邮件来检查 DMARC 是否正常工作。在 WordPress 仪表板中,单击WP Mail SMTP,然后单击Settings,然后单击Email Test选项卡。

在 WordPress 中测试电子邮件的 DNS

使用电子邮件测试页面上的表单发送测试电子邮件。

在 WP Mail SMTP 中发送电子邮件测试

发送电子邮件后,向下滚动并检查是否有警告消息。

应改进可交付性警告消息

向下滚动一点。您是否看到一条警告说它看起来没有为您的域设置 DMARC

WP 邮件 SMTP DMARC 警告

这意味着:

  • 您的 DNS 区域中没有 DMARC 记录
  • 您的 DMARC 记录尚未传播
  • DMARC 记录的格式可能不正确。

以阿里云DNS解析为例

主机记录:_dmarc
记录类型: TXT
解析线路:默认
记录值:v=DMARC1; p=none; fo=1; rua=mailto:xxx@abc.com  (xxx@abc.com换成你的邮箱)

什么是 DMARC 记录以及如何创建一个案例

什么是 DMARC 记录?

DMARC 记录是定义 DMARC 规则集的 TXT 记录。简而言之,DMARC 记录指示电子邮件接收者如果由于电子邮件身份验证问题而无法传递邮件,应该怎么做。

使用 DMARC 记录,您可以控制邮件服务器是否应拒绝、隔离或对未通过身份验证的邮件执行任何操作。

创建 DMARC 记录很重要,因为它可以帮助您对抗源自未经授权的电子邮件域的网络钓鱼、欺骗和 CEO 欺诈等网络威胁。这就是我们强烈建议创建 DMARC 记录以确保更好的电子邮件安全性的原因。

DMARC 记录示例

一个典型的 DMARC 记录至少包含三个重要的组件(或标签-值对)。考虑这个示例记录:

v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com

在这里,我们有三个标签:v、 prua ,它们的值分别为DMARC1nonemailto:dmarc@yourdomain.com

v标签指定 DMARC 的版本,p标签是策略(或在电子邮件未通过 DMARC 检查时执行的操作),rua 标签是您希望接收 DMARC 汇总报告的电子邮件地址。

在上面的示例中,p标签的值为reject。换句话说,这里定义的策略 是当消息认证失败时拒绝消息。以下是 3 种不同的 DMARC 政策的含义:

  • 无: 对未通过 DMARC 的邮件不采取任何措施,但仍会向您发送汇总报告,以便您监控电子邮件的情况。
  • 隔离: 未通过 DMARC 检查的邮件被放入接收者的垃圾文件夹中。
  • 拒绝: 所有未通过身份验证的电子邮件都将被完全拒绝,永远不会到达您的收件人。

您可以使用各种其他选项标签,例如pctruf。但是,为简单起见,我们不会在示例中包含这些内容。您仍然可以只使用上面提到的 3 个标签来设置您的 DMARC 记录。

如果您使用WP Mail SMTP处理您的 WordPress 电子邮件,它会告诉您 DMARC 是否未在您的域上正确设置。您可能还会看到“未找到 DMARC 记录”之类的错误。

以下步骤将帮助您解决问题。

如何添加 DMARC 记录

让我们逐步完成在您的域上设置 DMARC 记录的过程。

1. 使用 DMARC 分析器检查您的 DNS

如果您不确定是否在您的网站上设置了 DMARC,您可以使用 DMARC 检查器(如MXToolbox)来扫描您的 DNS 记录。

在字段中输入您的域名,然后单击 DMARC Lookup

DMARC 查找

如果您没有设置 DMARC,DMARC 分析器将显示失败消息。

DMARC 记录检查失败消息

接下来让我们登录并添加该 DMARC 记录。

2. 使用我们的示例添加 DMARC 记录

现在我们将为您的域编辑 DNS 并添加 DMARC 记录。

DNS 是一组指令,告诉服务器在哪里可以找到您的站点内容、电子邮件邮箱等。要编辑您的 DNS,您(或域所有者)需要登录为您的域处理 DNS 区域的提供商。

如果您不确定它在哪里,您可以尝试:

  • 您的网络托管控制面板:如果您购买了您的域名和托管作为一个包,您的 DNS 可能由您的网络托管公司处理。您需要登录主机控制面板并查找名为 DNS 或 DNS 区域的菜单。
  • 您的 DNS 注册商:如果您自己购买了域,则 DNS 可能由您购买它的公司管理。
  • 您的 CDN 提供商:如果您使用 Cloudflare 之类的 CDN,您的 DNS 记录将托管在 CDN 设置中。

在此示例中,我们将向您展示如何在 Cloudflare 中创建 DMARC 记录。

在 Cloudflare 中打开 DNS

其他域名注册商或主机的步骤非常相似,包括:

打开 DNS 时,请仔细检查您是否尚未设置任何 DMARC 记录。

您的 DNS 中不能有超过 1 条 DMARC 记录。但不要担心:我们的示例记录将涵盖您域下的所有子域,以及您发送邮件的所有电子邮件地址。

假设您没有,让我们继续添加 DMARC TXT 记录。

3. 复制并粘贴此 DMARC 记录

使用此示例很容易添加 DMARC 记录。无需使用 DMARC 生成器。

在注册商的 DNS 记录屏幕上,单击添加记录以创建 DMARC 记录。我们将在此示例中使用Cloudflare 。

在 Cloudflare 中添加 DMARC 记录

DMARC 记录是以 . 开头的 TXT 记录_dmarc。因此,在类型下拉列表中,选择TXT

为 DMARC 创建新的 TXT 记录

名称字段中,_dmarc.在末尾键入句点(点)。一些主机不需要该句点,因此他们会删除它或显示错误。在这种情况下,您可以在没有句点的情况下安全使用_dmarc

在 DNS 记录的大字段中,粘贴此 DMARC 记录示例。

v=DMARC1; p=none; fo=1; rua=mailto:me@example.com

以下是此规则的作用:

  • 我们使用它是p=none因为它是限制最少的设置。如果您的 DNS 出现问题,您仍会收到电子邮件报告,但这不太可能影响您自己的电子邮件的发送。如果您开始收到可疑的 DMARC 报告,您可以将这部分规则更改为p=quarantine.
  • 请务必更改rua=mailto:地址。理想情况下,它应该设置为您的邮件服务在其文档中提供的电子邮件地址。如果它没有提供,您可以使用您自己域中的电子邮件地址。
  • 基本而言,TTL(生存时间)设置就像您的 DNS 的到期日期。我们建议将TTL设置保留为Auto,通常为 4 小时。该设置并不重要,因此您可以安全地选择 24 小时或 14400(如果这是您唯一的选项)。

一些提供商可能会要求提供对齐规则。可以排除它,因为 DMARC 不需要它来工作。

所以在粘贴规则之后,这是我们完成的 DMARC 记录:

Cloudflare 中的新 DMARC 记录

保存新的 DMARC 规则以将新记录添加到 DNS。

如果您的 DNS 中已有 DMARC 规则,请仔细检查格式。注意名称字段;如果您@在名称字段中使用或您的域名,它将不起作用。

等待您的 DMARC 记录传播

每当您对站点的 DNS 进行更改时,您最多需要等待 48 小时才能使更改生效。如果您使用 Cloudflare,通常会发现更改会在几分钟内发生。

更改传播后,返回到基于 Web 的 DMARC 检查器,例如 MXToolbox。使用其 DMARC 工具再次检查。

您的 DMARC 规则应显示在绿色栏中,以便您知道它正在工作。

MXToolbox 中的 DMARC 规则成功

您还可以使用WP Mail SMTP从 WordPress 发送另一封测试电子邮件。这将自动对您的 DNS 运行新检查并查找您的 DMARC 记录。

如果您正确添加了所有内容,您现在将看到这样的传递消息:

在 WP Mail SMTP 中创建 DMARC 记录

就是这样!现在,您向 DNS 添加了 DMARC 记录。