WordPress 电子邮件和 SMTP

已发表: 2022-11-01

您是否遇到过从 WordPress 网站发送电子邮件的问题? 也许您听说过使用 SMTP 服务来处理电子邮件以提高可靠性? 这一切似乎有点令人困惑!

如果您不确定电子邮件和 WordPress 是如何工作的,或者对这些有疑问,那么您来对地方了。 在本文中,我们将了解 WordPress 如何“开箱即用”地处理电子邮件、潜在问题,以及最重要的是如何解决使用 WordPress 和电子邮件时可能遇到的问题。

我们走吧!

您什么时候在 WordPress 中使用电子邮件?

首先,当我们谈论使用电子邮件和 WordPress 时,我们并不是在讨论配置您日常使用的“常规”电子邮件帐户以从您的域发送电子邮件。 这是一个重要的区别。 如果您阅读本文是因为您想知道如何为日常“常规”电子邮件设置自己的电子邮件系统,请查看我们的文章“Google vs Rackspace vs Microsoft – 哪个电子邮件提供商最好?” 这将为您提供一切所需的信息。

我们在本文中讨论的电子邮件类型是从您的 WordPress 网站发送的电子邮件——通常是“事务性”电子邮件,可能包括密码重置通知、登录通知等内容。 这还包括当您使用流行的表单插件(如 Contact Form 7)在您的网站上配置表单时生成的电子邮件通知。您可以通过前往 WordPress 网站上的登录屏幕并单击“丢失密码”来超级快速地检查其中一个' 关联。

理论上,您应该将密码重置链接发送到您的电子邮件收件箱。 请注意,我们说的是“理论上”! 众所周知,WordPress 中默认使用的电子邮件传递系统不可靠。 然而,完全责怪WordPress是不公平的。 围绕 WordPress 默认电子邮件传递系统的许多问题在很大程度上依赖于底层服务器设置。 几乎总是如此,更便宜的托管往往更成问题。

尽管可以可靠地指责托管导致 WordPress 电子邮件问题,但毫无疑问,WordPress 电子邮件系统的某些方面并不完美。

WordPress默认电子邮件传递的问题

WordPress 使用基于 PHP 邮件功能的 wp_mail 内置功能发送电子邮件,并允许您使用主机的标准邮件功能通过 WordPress 站点发送电子邮件。 它的实现很简单,大多数开发人员使用这样的东西不会有问题。

但是,该系统中存在一些众所周知的缺陷,可能会导致一系列问题:

  • 无身份验证/验证:通过基本 PHP 邮件功能发送的电子邮件无需经过任何类型的身份验证或验证,而现在使用更复杂的系统发送的电子邮件通常会发生这种情况。 这可能会导致它们被收件人的电子邮件帐户视为垃圾邮件或垃圾邮件。
  • 可能被劫持:电子邮件协议相对容易让垃圾邮件发送者“劫持”并用于发送他们自己的垃圾邮件(有时数以万计!)。 这种行为不仅会给您的服务器增加额外的负载(这样做会降低您的网站速度),而且还会导致您的域被垃圾邮件过滤器标记。 这将损害使用您的域的任何电子邮件的可传递性(即使它是使用 Microsoft 等知名电子邮件提供商发送的)。

由于这些弱点,一些托管服务提供商将禁用 WordPress wp_mail 功能,这意味着您无法在不启用第三方 SMTP 服务的情况下发送任何交易电子邮件。

什么是 SMTP?

SMTP 代表简单邮件传输协议,用于以更可靠的方式管理外发电子邮件。

与所有电子邮件协议一样,它用于通过 Internet 从一个电子邮件帐户向另一个帐户发送电子邮件,它包含一组规则,可让不同的电子邮件客户端和帐户轻松交换信息。

SMTP 服务器

您可能听说过“SMTP”和“SMTP 服务器”这两个词可以互换使用。 SMTP 指的是协议,服务器只是用于运行实际进程的计算机。 像 Google 这样的主要电子邮件提供商都有自己运行的 SMTP 服务器。

他们的工作是接受来自 SMTP 客户端的消息,并在确保它们有效后将它们发送给客户端。 这意味着您从您已获准向您发送电子邮件的人那里收到的大多数电子邮件都会经过检查,以确保它们是合法的。

SMTP 是如何工作的?

让我们快速了解一下 SMTP 服务器的实际工作原理:

  1. 当您发送电子邮件时,SMTP 客户端(或发件人)会与 SMTP 服务器(使用端口 25)建立连接,以便使用适当的命令验证和传输数据。
  2. 接下来,客户端通过将 FROM: 和 TO: 邮件地址发送到服务器来启动事务。 服务器会检查这些地址是否合法,并回复相应的消息。
  3. 一旦地址被批准,SMTP 客户端也会发送电子邮件内容,然后将其发送给收件人。

这一切都在几毫秒内发生,并且在大多数情况下,发件人和收件人都没有注意到。

SMTP 与其他电子邮件协议之间的差异

除了 SMTP,您可能还听说过其他类型的电子邮件协议,即 POP 和 IMAP。

但是,POP 和 IMAP 都将电子邮件传送限制在仅经过批准的服务器上。 它们不适合用于网络间通信。 这就是 SMTP 有用的地方,因为它可以在未知邮件服务器之间“推送”电子邮件。

SMTP 和 WordPress

那么,SMTP 与 WordPress 有什么关系呢?

正如我们所见(您可能也亲身经历过),默认的 WordPress 邮件协议使用起来可能会出现问题。 幸运的是,通过利用合适的 SMTP 服务器,我们可以绕过 WordPress 中的这种内置电子邮件机制,并将其替换为更可靠的东西。 我们可以在 WordPress SMTP 邮件插件的帮助下做到这一点,该插件允许我们利用外部 ESP(电子邮件发送提供商)的服务来传递在您的 WordPress 网站上创建的传出消息。

使用 Pressidium 托管您的网站

60 天退款保证

查看我们的计划

当您需要向用户、客户、成员或访问者发送电子邮件时,确保从您的 WordPress 网站发送的电子邮件可靠传递尤为重要。 虽然只有您使用该网站时,奇怪的密码重置电子邮件最终进入垃圾邮件并不是一个问题,但您可以理解,对于诸如订单确认电子邮件之类的东西最终进入客户的垃圾邮件文件夹,这并不是一个很好的外观。

开始使用 SMTP 和您的 WordPress 网站

为了利用使用 SMTP 服务器来处理 WordPress 网站上的事务性电子邮件的好处,您需要做两件事。

  1. 一个 WordPress SMTP 插件
  2. SMTP 服务,例如 Mailgun 或 Gmail

WordPress SMTP 插件

使用单独的 SMTP 服务器来处理交易电子邮件是比较常见的。 因此,有许多优秀的 SMTP 插件可供您选择。 事实上太多了,我们在这里写不出来! 由于它们都大体上做同样的事情,我们将只关注一个。 WP 邮件 SMTP 插件。

拥有 3+ 百万次活跃安装,很明显这是一个流行的插件。 它使配置 SMTP 服务器变得超级简单,有多种“开箱即用”的选择可供选择。

下载并安装后,请按照设置向导进行操作。 该过程的第一步是选择 SMTP 服务。 如您所见,您有很多选择。 Mailgun 等服务通常是您需要付费的服务。 这些都是值得的(尤其是在您发送大量电子邮件的情况下),但是,如果您只有少量电子邮件通过您的网站(例如消息通知),那么您可能需要选择免费选项。 也许最熟悉的将是 Gmail。

如果您已经拥有 Gmail 帐户,这是一个特别好的选择,但请注意,这不一定是最简单的!

选择此选项后,您现在必须在您的 Google 帐户中创建一个网络应用程序。

配置 Google Web App 以通过 SMTP 发送电子邮件

首先,前往 Google Developers Console。 如果您登录到您的 Google 帐户,您应该可以立即访问它。 创建一个新项目。 创建完成后,选择工程打开。

在左侧,点击“启用 API 和服务”

在新屏幕中,找到“Gmail API”并转到其页面以启用它。

启用后,使用右上角的 CREATE CREDENTIALS 按钮进入凭据页面。

在“凭据类型”中,您选择 Gmail API 和用户数据。 然后点击下一步转到“OAuth 同意屏幕”部分并填写应用名称、用户电子邮件支持和开发人员联系信息。

保存并继续到下一页,这是关于 Gmail API 的“范围”的。 您可以跳过此步骤,因为它是可选的(它可以帮助您在授权应用程序时控制对私有数据的访问)。

第 4 步,“OAuth 客户端 ID”适用于用于身份验证和授权的 OAuth 2.0 协议。 在这里,您应该从下拉菜单中选择“Web 应用程序”作为应用程序类型,然后为您的 OAuth 2.0 客户端设置一个名称。

接下来是 Authorized JavaScript origins,它也是可选的。 在这里,您可以输入多个来源,以允许您的应用在不同的协议、域或子域上运行。 请记住,您不能使用通配符。

在授权重定向 URL 中,您可以设置用户在通过 Google 身份验证后将被重定向到的路径。 路径不能包含 URL 片段、相对路径或通配符,也不能是公共 IP 地址。

完成这些设置后,点击创建按钮,您将看到创建了一个客户端 ID。

有一个下载凭据的按钮和一个完成该过程的完成按钮。

完成 WordPress SMTP 设置

返回您的 WordPress 网站。 如果向导仍然打开,您需要输入我们在 Google 控制台中生成的客户端 ID、客户端密码和重定向 URI。

注意:如果需要,您可以重新打开向导,方法是转到 WP Mail SMTP 菜单项,然后点击“启动设置向导”按钮。

重新加载页面后,单击设置页面底部的“允许插件使用您的 Google 帐户发送电子邮件”按钮。 您现在应该会收到确认您可以开始使用的确认信息。 对此进行测试,例如我在您的网站上使用消息表单。 您是否成功收到电子邮件?

请记住,如果您有一个处理大量交易电子邮件的大型网站(例如活动的 WooCommerce 网站),则不适合使用 Google SMTP 服务器,因为通过该服务器发送的电子邮件受到速率和数量的限制。 相反,您需要使用 Mailgun 之类的替代方案。

结论

希望您现在可以自行配置您的网站以使用 Gmail SMTP 服务器发送电子邮件或了解替代方案的选项。 实际上,除非您只需要密码重置电子邮件之类的东西才能在您的网站上运行,否则您需要启用某种描述的 SMTP 服务。 或者,您可以选择已经代表您利用专用 SMTP 服务功能的主机(例如 Pressidium)。