如何修复 WordPress 不发送电子邮件问题

WPBeginner 上最常见的问题之一是如何解决 WordPress 不发送电子邮件的问题.

我们的许多初级用户问我们为什么他们的联系表单插件没有发送电子邮件,或者为什么他们没有看到任何 WordPress 通知.

在本文中,我们将向您展示如何解决 WordPress 不发送电子邮件的问题,让您的网站可以更可靠地发送电子邮件并绕过垃圾邮件文件夹.

How to fix the WordPress not sending email issue

为什么您没有从您的 WordPress 网站收到电子邮件

电子邮件丢失的最常见原因是您的 WordPress 托管服务器未正确配置为使用 PHP mail() 函数.

即使您的主机配置为使用它,许多电子邮件服务提供商(如 Gmail 和其他服务提供商)也会使用各种工具来减少垃圾邮件.这些工具会尝试检测电子邮件是否确实来自其声称来自的位置.

WordPress 网站发送的电子邮件通常无法通过此测试.

这意味着当一封电子邮件从您的 WordPress 网站(联系表单插件、管理员通知等)发出时,它甚至可能不会进入收件人的垃圾邮件文件夹,更不用说收件箱了.

这就是我们建议不要使用 WordPress 发送电子邮件简报的原因.

这也是我们推荐大家使用 SMTP 在 WordPress 中发送电子邮件的原因.

什么是 SMTP?

SMTP(简单邮件传输协议)是发送电子邮件的行业标准.

与 PHP mail() 函数不同,SMTP 使用适当的身份验证,从而提高电子邮件的可传递性.

WordPress 有一个 WP Mail SMTP 插件,可将您的 WordPress 站点配置为使用 SMTP 而不是 PHP mail() 函数发送电子邮件.

您可以使用它连接任何流行的 SMTP 服务,例如 SendinBlue、Gmail (G Suite)、Office365、Amazon SES 等.

话虽如此,让我们来看看如何解决 WordPress 不发送电子邮件的问题.

安装 WP Mail SMTP 插件

无论您选择什么 SMTP 服务,您都需要在您的网站上安装 WP Mail SMTP 插件.这让您可以将 WordPress 从使用内置的 PHP mail() 函数切换为使用您的 SMTP 服务.

首先,安装并激活 WP Mail SMTP 插件.如果您不确定如何安装,请参阅我们关于如何安装 WordPress 插件的分步指南.

接下来,单击 WordPress 仪表板中的 WP Mail SMTP 以配置插件设置.

The WP Mail SMTP settings page in your WordPress dashboard

您首先需要输入您希望网站电子邮件来自的名称和企业电子邮件地址.确保您在此处使用的电子邮件地址与您将用于 SMTP 邮件服务的电子邮件地址相同.

Entering the name and email address that you want your WordPress emails to come from

您可以选择强制电子邮件使用此名称和电子邮件地址,即使其他插件(如 WPForms)具有不同的设置.WP Mail SMTP 将覆盖其他插件的设置.

之后,您需要为您的站点选择 SMTP 邮件服务.

为了本教程,我们将使用 Sendinblue 设置 SMTP.如果您更喜欢使用 Gmail 或 Office365,我们也会在本文后面部分提供相关说明.

Select Sendinblue as your mailer in WP Mail SMTP

要完成 WP Mail SMTP 的设置,您需要使用 Sendinblue 创建一个帐户.我们将继续进行下一步,然后返回完成 WP Mail SMTP 的设置.

使用 Sendinblue 发送 WordPress 电子邮件

Sendinblue 是一家流行的电子邮件服务提供商.它们让您发送大量具有高可传递性的电子邮件.

您可以使用 Sendinblue 每天免费发送多达 300 封电子邮件,这对于大多数小型网站来说已经足够了.

这些可能是来自您的联系表单的电子邮件、新用户帐户详细信息、密码恢复电子邮件或通过您的 WordPress 网站发送的任何其他电子邮件.

首先,您需要前往 Sendinblue 网站创建一个帐户.点击"免费注册"按钮设置您的帐户.

创建帐户后,您将看到 Sendinblue 仪表板.如果您没有在设置阶段完成您的个人资料,系统会提示您在此处完成.

The Sendinblue dashboard

在您可以继续使用 Sendinblue 进行设置之前,您的网站上还有一个步骤.

为您的网站设置子域

首先,您需要设置一个子域.这就像您网站的一个单独部分.我们建议使用 mail1.yourdomain.com.

注意:您的 WordPress 主机可能不允许您使用 mail 作为您的子域,这就是我们将 1 也放在那里的原因.

要添加您的子域,请登录您的网络托管帐户并找到控制面板的域部分.

为了本教程,我们将演示如何在 Bluehost 上的示例托管帐户上执行此操作.登录后,转到域»子域.

然后您可以输入您的子域并点击"创建".

Adding a subdomain in WordPress

如果您使用其他托管公司,或者您的 DNS 由 Domain.com、Network Solutions 或 GoDaddy 等域名注册商管理,请按照各自的说明进行操作.

创建子域后,您需要将其添加到您的 Sendinblue 帐户中.

将您的子域添加到 Sendinblue

在您的 Sendinblue 帐户中,转到"设置",然后找到"您的发件人"并单击"配置"按钮:

Configuring your sender settings in Sendinblue

接下来,单击"域"选项卡,然后单击"添加新域"按钮.

Adding a new domain in Sendinblue

输入整个子域(例如 mail1.yoursite.com)并选中"我想使用此域名对我的电子邮件进行数字签名(SPF、DKIM、DMARC)"旁边的框.

Add your subdomain and check the box

接下来,点击"保存",您会看到一个弹出窗口,其中列出了多个 DNS 记录.

这些代码行让 Sendinblue 授权您的域名.

提示:如果您不小心关闭了此弹出窗口,请不要担心.您可以通过单击子域旁边的"验证此域"按钮返回该域:

The Authenticate Domain button which lets you go back to the DNS settions

打开一个新的浏览器标签并重新登录到您的网络托管帐户.您需要找到您的域并打开 DNS 记录.

在 Bluehost 中,您可以通过转至 域 » 来执行此操作.我的域,然后点击您的域旁边的"管理".

您需要在此处添加 Sendinblue 提供的 3 条 TXT 记录.

首先,向下滚动以找到 DNS 记录的 TXT 部分.它看起来像这样:

DNS TXT records in Bluehost

然后,单击"添加记录".

完成第一条记录如下:
主机记录: mail._domainkey.mail1
记录类型: TXT
TXT 值:从 Sendinblue 复制此内容.
TTL:1 天

提示:主机记录可能被您的网络主机称为主机或名称.如果您为子域使用了不同的内容,请更改 mail1.可能不需要记录类型.TXT 值也可以称为 TXT 数据:它是 Sendinblue 详细信息中的第一个长代码.TTL 可以是 24 小时或 86400 秒(两者都相当于 1 天).如果您使用的是 GoDaddy,请将其设置为 1 小时.

添加第一条记录后,点击"保存".

接下来,您需要添加第二条记录.完成如下:

主机记录: mail1
记录类型: TXT
TXT 值: v=spf1 include:spf.sendinblue.com mx ~all
TTL:1 天

完成后,点击"保存".

保存后,您需要添加第三条记录.完成如下:

主机记录: mail1
记录类型: TXT
TXT 值: 从 Sendinblue 复制此内容.这是第三段代码.
TTL:1 天

完成后,继续保存该记录.

警告: Sendinblue 还有第四段代码用于 DMARC 记录.您不需要这个,我们强烈建议您跳过它,除非您对 DMARC 配置有经验.

添加记录后,返回 Sendinblue.对于每条记录,单击"记录已添加"按钮.请验证.' Sendinblue 可能需要 24-48 小时才能验证您的记录,但通常要快得多.

如果单击该按钮时没有任何反应,则记录尚无法验证.稍后再检查,看看它们是否已被验证.完成后,您会在绿色记录旁边看到"已配置"字样:

Sendinblue DNS TXT records once they've been verified

您可以在等待验证期间继续学习本教程.

完成设置 WP Mail SMTP 以使用 Sendinblue

返回 WordPress 仪表板中的 WP Mail SMTP 设置.您应该已经输入了发件人电子邮件和发件人姓名,但如果没有,您现在可以输入.

不要选中"返回路径"复选框,因为 Sendinblue 不使用此选项.

接下来,为您的邮件点击"Sendinblue".

Select Sendinblue as your mailer in WP Mail SMTP

您需要转到您的 Sendinblue 帐户才能找到您的 API 密钥.只需点击"API 密钥"框下方的链接,您的 Sendinblue 帐户仪表板就会在新选项卡中的正确位置打开.

从该页面复制 v3 API 密钥.

Getting the API from Sendinblue

恭喜.您现在已经设置了所有内容.最后一步是发送测试电子邮件以确保一切正常.

转到 WP Mail SMTP 的"电子邮件测试"选项卡,然后输入要发送电子邮件的电子邮件地址.这将默认为站点的管理员电子邮件.点击"发送电子邮件".

您应该会看到消息"测试 HTML 电子邮件已成功发送!"检查您的收件箱,看看它是否已到达.它看起来像这样:

The test email from WP Mail SMTP

注意:如果您的 Sendinblue 帐户尚未激活,您将收到消息:[permission_denied]: Unable to send email.Your SMTP account is not yet activated.

修复 WordPress 电子邮件问题的替代方法

正如您从 WP Mail SMTP 插件的邮件程序选项列表中看到的,您不必使用 Sendinblue.虽然这是我们最推荐的免费推荐,但您还可以使用其他选项,包括 Office 365、Gmail/G Suite、Amazon SES 等.

使用 Gmail 或 G Suite 和 WP Mail SMTP 来修复 WordPress 电子邮件

如果您有 Gmail 或 G Suite 帐户,则可以使用它来发送电子邮件.使用 WP Mail SMTP 插件时,您无需在 WordPress 中输入电子邮件登录详细信息.

要使用 Gmail 或 G Suite,请按上图设置 WP Mail SMTP,然后为您的邮件点击"Google"选项.

您需要选中"返回路径"框.

之后,系统会要求您输入"客户端 ID"和"客户端密码".要获取这些详细信息,您需要在您的 Google 帐户中创建一个网络应用程序.如果这听起来有点令人生畏,请不要担心.您可以在本文中找到有关使用 Gmail 发送 WordPress 电子邮件的完整说明.

注意:您可以通过常规 Gmail 帐户使用此流程,但如果您使用 G Suite,您的电子邮件送达率会好得多.请参阅我们的指南,了解如何使用 Gmail 和 G Suite 设置专业电子邮件地址.

但是,使用 Gmail 或 G Suite 有几个主要缺点.

一是您可能需要联系您的网络主机,让他们安装正确的证书才能使其正常工作.

另一个是,如果您以后更改电子邮件地址,则需要重新完成整个过程.这将包括创建一个新的网络应用程序.

使用 Office 365/Outlook 和 WP Mail SMTP 修复 WordPress 电子邮件

如果您将 Microsoft Office 365 或 Outlook 用于您的常规电子邮件帐户,那么您也可以使用它通过 WordPress 发送电子邮件.不过,这不是推荐的选项,因为它不太安全.

您需要如上所述设置 WP Mail SMTP,然后单击"其他 SMTP"选项.这将打开一个表格来完成.使用以下设置填写:

SMTP 主机:smtp.office365.com
加密:TLS
SMTP 端口:587
自动 TLS:(保持开启)
身份验证:(保持开启)
SMTP 用户名:您的 Office 365 帐户电子邮件地址
SMTP 密码:您的 Office 365 帐户密码

这种方法的一个关键问题是它需要在 WordPress 中以纯文本形式存储您的密码.这并不安全,您帐户中的任何其他管理员都可以看到您的密码.您可以使用 WP Mail SMTP 应用程序中的说明将其记录在您的 wp-config.php 文件中.

有关详细信息,请参阅有关如何使用 WP Mail SMTP 设置 Outlook 的详细指南.

使用 Amazon SES 和 WP Mail SMTP 修复 WordPress 电子邮件

Amazon AWS 平台有一个简单的电子邮件服务 (SES),您可以使用它来解决 WordPress 电子邮件问题.

亚马逊最棒的地方在于,它可以让您每月免费发送多达 62,000 封电子邮件.缺点是设置对初学者来说更具挑战性,这就是为什么我们不推荐它作为我们的首选选项.

但正如您想象的那样,许多专业人士和专家将 Amazon SES 用于他们的 WordPress 电子邮件 SMTP 服务,因此我们不能不提及它而写一篇文章.

如果您有兴趣使用 WordPress 设置 Amazon SES,请参阅有关如何使用 WordPress 设置 Amazon SES 的完整说明.

无论您决定使用哪种邮件程序,请务必记住使用"测试电子邮件"选项卡以确保成功发送电子邮件.

您也必须确保检查您的收件箱,并确认您已收到测试电子邮件.

我们希望本文能帮助您了解如何解决 WordPress 不发送电子邮件的问题.您可能还想查看我们最常见的 WordPress 错误列表以及如何修复它们.

5

发表回复