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

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

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

即使您的主机配置为使用它,许多电子邮件服务提供商,如Gmail等,也会使用各种工具来减少电子邮件垃圾邮件。这些工具试图检测电子邮件是否真的来自它声称来自的位置。

WordPress网站发送的电子邮件通常不会通过此测试。

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

这就是为什么我们建议不要使用WordPress来发送您的电子邮件时事通讯。

这也是我们建议每个人使用SMTP在WordPress中发送电子邮件的原因。

什么是SMTP

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

与PHP mail()函数不同,SMTP使用适当的身份验证,这导致高电子邮件可交付性。

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

您可以使用它连接到任何流行的SMTP服务,如SendLayer、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以配置插件设置。

WordPress仪表板中的WP Mail SMTP设置页面

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

输入您希望WordPress电子邮件来自的姓名和电子邮件地址

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

之后,您需要为您的网站选择SMTP邮寄服务。

在本教程中,我们将使用SendLayer设置SMTP。如果您更喜欢使用Gmail或Office365,那么我们在本文后面也有关于这些的说明。

在WP Mail SMTP中选择SendLayer作为您的邮件

要完成WP Mail SMTP的设置,您需要使用SendLayer创建一个帐户。接下来,我们将继续,然后回来完成WP Mail SMTP上的设置。

使用SendLayer发送WordPress电子邮件

SendLayer是一个可靠的电子邮件服务提供商。他们允许您发送大量具有高可交付性的电子邮件。

您可以使用SendLayer免费发送多达200封电子邮件,这对大多数小型网站来说已经足够了。

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

首先,您需要访问SendLayer网站以创建一个帐户。在定价页面上,单击“免费试用SendLayer(最多发送200封电子邮件)”链接以设置您的帐户。

点击SendLayer免费试用链接

创建帐户后,您将看到SendLayer仪表板,如下所示:

SendLayer仪表板

现在您有一个SendLayer帐户,让我们使用WordPress设置您的电子邮件提供商。

将您的WordPress网站与SendLayer连接

在使用SendLayer发送电子邮件之前,您需要授权您的域名。

这向电子邮件服务器证明,您是已确认的发送域所有者,并且您的电子邮件是从合法来源发送的。

要授权您的域名,请单击SendLayer仪表板上的橙色“添加域名”按钮。

单击SendLayer中的添加域按钮

在下一页上,只需在提供的字段中键入您的域名即可。

然后,单击“添加域”按钮。

在SendLayer中添加您的域

注意:对于Sendinblue等其他邮件服务,您需要先为您的网站设置一个子域。但是,SendLayer将自动将子域添加到发件人域的DNS记录中。因此,在注册域名时,您无需添加额外的子域名。

添加域名后,SendLayer将生成5条DNS记录,这些记录对您的域名来说是独一无二的。

这些代码行让SendLayer授权您的域名。

SendLayer DNS记录表

您需要添加这些DNS记录到您的WordPress网站。这可能看起来很复杂,但你需要做的就是将它们复制并粘贴到正确的地方。

首先,打开一个新的浏览器选项卡并登录您的WordPress托管帐户。为了本教程,我们将在Bluehost上的示例托管帐户上进行演示。

接下来,您需要找到您的域并打开DNS记录。

在Bluehost中,您可以通过前往“域”-“我的域”来执行此操作。然后,单击您的域旁边的“管理”按钮。

在Bluehost中单击您的域旁边的管理按钮

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

在下一页上,单击“DNS”选项卡。在这里,您需要添加SendLayer提供的4个CNAME记录和1个TXT记录。

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

在Bluehost中从SendLayer添加CNAME记录

然后,单击“添加记录”。

完成第一张唱片如下:
主机记录: sl
指向(值):从SendLayer复制此。
TTL:4小时(分钟)

提示:主机记录可能被您的网络主机称为主机或名称。添加主机记录时,请务必只添加子域(sl),因为Bluehost将自动添加您的域。您可能需要添加记录类型,即CNAME。

添加第一条记录后,单击“保存”按钮来存储您的更改。

接下来,通过重复上述步骤继续添加其他3条CNAME记录。

之后,再次向下滚动以找到DNS记录的TXT部分。在这里,您需要从SendLayer添加TXT记录。

从SendLayer添加TXT记录

单击“添加记录”按钮并按以下方式完成:

主机记录: sl
TXT值:从SendLayer复制此。
TTL:4小时(分钟)

完成后,继续保存那张唱片。

注意:TXT值也可以称为TXT数据:它是SendLayer详细信息最后一行中的长一段代码。TTL可以是24小时或86400秒(两者都相当于1天)。如果您使用的是GoDaddy,请将其设置为1小时。

添加记录后,请返回SendLayer,并选中“我已添加这些DNS记录并准备继续”旁边的复选框。然后,点击“验证DNS记录”按钮。

验证DNS记录SendLayer

SendLayer可能需要24-48小时才能验证您的记录,但通常要快得多。

如果您单击该按钮时没有任何反应,则无法验证记录。您可以稍后再次检查它们是否已通过SendLayer仪表板中的设置?DNS记录和设置进行验证。

一旦经过验证,SendLayer DNS TXT记录

在这里,您将在一个地方找到所有DNS记录的列表。一旦您的域获得成功授权,您将在“状态”列中的每个DNS记录旁边看到绿色勾号。

在等待授权期间,您可以继续使用本教程。

完成设置WP Mail SMTP以使用SendLayer

现在,回到WordPress仪表板中的WP Mail SMTP设置。您应该已经输入了From Email和From Name,但如果没有,您现在可以这样做了。

接下来,为您的邮件单击“SendLayer”。

在WP Mail SMTP中选择SendLayer作为您的邮件

之后,您需要转到您的SendLayer帐户来查找您的API密钥。

从SendLayer仪表板,只需转到设置»API键页面。在这里,您将看到您在SendLayer中授权域名时生成的默认API密钥。

查找SendLayer API密钥

您可以通过单击复制图标从此页面复制API密钥。

点击在SendLayer中复制API密钥

完成后,您可以返回到WP Mail SMTP设置,并将API密钥粘贴到提供的字段中:

将SendLayer API密钥粘贴到WP Mail SMTP中

恭喜。你现在已经设置好了一切。最后一步是发送一封测试电子邮件,以确保一切正常。

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

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

来自WP Mail SMTP的测试电子邮件

Note: If your SendLayer account isn’t yet activated, you’ll get the message: [permission_denied]: Unable to send email. Your SMTP account is not yet activated.

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

正如您从WP Mail SMTP插件的邮件选项列表中看到的,您不必使用SendLayer。虽然这是我们的首要免费推荐,但您可以使用其他选项,包括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帐户中创建一个Web应用程序。如果这听起来有点令人生畏,别担心。您可以在本文中找到有关使用Gmail发送WordPress电子邮件的完整说明。

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

然而,使用Gmail或G Suite有几个关键的缺点。

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

另一个是,如果您将来更改电子邮件地址,您将需要再次完成整个过程。这将包括创建一个新的Web应用程序。

将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电子邮件

亚马逊AWS平台有一个简单的电子邮件服务(SES),您可以使用它来修复WordPress电子邮件问题。

亚马逊最好的部分是,它允许您每月免费发送多达62,000封电子邮件。缺点是,对于初学者来说,设置更具挑战性,这就是为什么我们不推荐它作为我们的首选选项。

但正如您可以想象的那样,许多专业人士和专家将亚马逊SES用于他们的WordPress电子邮件SMTP服务,因此我们不能在不提及的情况下写文章。

如果您有兴趣使用WordPress设置亚马逊SES,请查看有关如何使用WordPress设置亚马逊SES的完整说明。

无论您决定使用什么邮件,请始终记得使用“测试电子邮件”选项卡,以确保电子邮件成功发送。

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

评论被关闭。