如何使用 SMTP 从 WordPress 发送电子邮件

已发表: 2023-04-11

WordPress 有一种发送电子邮件的本机方式。 它使用 PHP mail() 函数来发送所有这些时事通讯、密码重置或您要发送给受众的任何其他类型的电子邮件。 虽然这种方法理论上应该足够了,但它远非完美。

在 WordPress 中,使用 SMTP 发送电子邮件是一个更好的选择。 而且设置起来并不困难。 今天的教程将向您展示如何使用和不使用插件来做到这一点。

什么是 SMTP?

SMTP 或简单邮件传输协议定义了电子邮件传输的规则。 它使得在不同类型的计算机、服务器和网络之间交换电子邮件成为可能。

SMTP 服务器是根据 SMTP 协议运行并将电子邮件从发件人发送到收件人的应用程序。 为了简化这个过程,SMTP 服务器接收来自电子邮件客户端(Gmail、Yahoo!、Outlook 等)的电子邮件,并在需要时将它们传输到其他 SMTP 服务器。 然后电子邮件会被收件人的 SMTP 服务器接收并使用传入邮件服务器(POP3 或 IMAP)进行传送。

为什么在 WordPress 中使用 SMTP 发送电子邮件是个好主意?

正如我们在开头提到的,WordPress 使用 PHP mail() 函数来发送电子邮件。 由于多种原因,此方法存在问题:

  • 它主要适用于简单的纯文本电子邮件。 HTML 功能非常有限,您不能添加附件或嵌入图像。 这给您留下了无聊的电子邮件,几乎没有设计元素;
  • 它存在严重的可交付性问题。 PHP mail() 没有正确的电子邮件标头。 因此,互联网服务提供商 (ISP) 会将使用此方法发送的电子邮件标记为垃圾邮件或完全拒绝。 因此,例如,如果您使用 PHP mail() 自动将新帖子通过电子邮件发送给您的订阅者,那么您很可能经常访问垃圾邮件文件夹;
  • 它不允许通过外部服务器发送电子邮件。 即使您配置了 SMTP 设置,它也只能用于 localhost 或类似的解决方案。 PHP mail() 也不支持 SMTP 身份验证。

最简单的解决方案是将 WordPress 配置为使用 SMTP 服务器发送电子邮件。 后者需要标头认证并支持通过 SSL 和 TLS 进行安全传输。 这意味着您遇到电子邮件送达能力问题的可能性会降低,尤其是当您使用可靠的 SMTP 服务并正确设置所有内容时。

关于这一点,让我们弄清楚如何使用 SMTP 服务器在 WordPress 中发送电子邮件。

在没有插件的情况下在 WordPress 中配置 SMTP

您可以在 WordPress 中配置 SMTP,而无需使用一些编码和 PHPMailer 的插件。 它是为 PHP 创建的库,用于克服 mail() 函数的缺点。 PHPMailer 支持复杂的电子邮件主体(包括 HTML 和嵌入式图像)和附件。 最重要的是,它使您能够使用任何 SMTP 服务器发送电子邮件。

为了使 PHPMailer 工作,我们需要一个工作的 SMTP 服务器。 在下面的代码示例中,我们将使用 Gmail SMTP 在 WordPress 中发送电子邮件。 但在我们开始之前,您应该按照这些说明创建应用密码。 否则,您将无法成功进行身份验证。

现在,导航到您网站的根目录并找到wp-config.php文件。 使用以下代码示例使用 Gmail 凭据配置 WordPress SMTP 设置。

 define( 'SMTP_username', '[email protected]' );
define( 'SMTP_password', 'your-gmail-app-password' );
定义('SMTP_server','smtp.gmail.com');
define( 'SMTP_FROM', '[email protected]' );
定义('SMTP_NAME','你的名字');
定义('SMTP_PORT','587');
定义('SMTP_SECURE','tls');
定义('SMTP_AUTH',真);
定义('SMTP_DEBUG',0);

转到主题编辑器并找到functions.php文件以进行进一步编辑。 请注意,建议对子主题进行更改以避免主主题出现故障。 将以下脚本添加到functions.php文件中。

 add_action( 'phpmailer_init', 'my_phpmailer_smtp' );
函数 my_phpmailer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_server;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->用户名 = SMTP_用户名;
$phpmailer->Password = SMTP_password;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}

保存设置,仅此而已。 现在您的 WordPress 通过 SMTP 服务器发送电子邮件。

有关详细信息,请参阅如何通过 PHP 函数在 WordPress 中发送电子邮件。

使用插件设置 WordPress SMTP

将 WordPress 配置为通过 SMTP 发送电子邮件的更简单方法是通过专用插件。 它们不需要编码技能——即使没有开发人员的帮助,您也可以配置它们。

WP 邮件 SMTP

WP 邮件 SMTP

WP Mail SMTP 是最流行的用于设置 SMTP 的插件。 它指示 PHP mail() 使用集成邮件程序或自定义 SMTP 设置之一。 通过这样做,它解决了本机功能的可交付性问题。

您可以通过从 WordPress 网站的仪表板导航到“插件”选项卡并按“添加新”轻松安装 WP Mail SMTP。 在搜索框中输入“WP Mail SMTP”,按“立即安装”,然后按“激活”。

WP 邮件 SMTP 安装

安装插件后,您可以从仪表板或使用设置向导配置邮件程序。 两者具有相同的概念,只是不同的设计。 我们更喜欢使用仪表板,因此我们将在它的帮助下设置插件。

我们有两个主要选择:

  • 使用第三方 SMTP 服务设置 WP Mail SMTP
  • 使用内置邮件程序

这两个选项的第一步是相同的,所以让我们在这里讨论一下。 打开 WP Mail SMTP 设置并向下滚动到“主连接”选项卡下的发件人电子邮件和发件人姓名。

在发件人电子邮件字段中,输入将用于发送电子邮件的电子邮件地址。 这可以是一个免费的电子邮件帐户,但我们建议使用带有自定义域的地址以提高送达率。 为确保输入的地址用于所有电子邮件,请选中 Force From Email 框。

在“发件人姓名”字段中,输入将在已发送电子邮件中显示的姓名。 再次检查 Force From Name 以确保其他插件(例如,WooCommerce 或 WordPress 时事通讯插件)不会覆盖此设置。

WP 邮件 SMTP 设置

完成后,我们可以继续设置邮件程序以指示 WordPress 使用插件发送电子邮件。

使用第三方 SMTP 服务设置 WP 邮件

使用可靠的第三方 SMTP 服务对于确保将您的 WordPress 电子邮件发送到收件人的收件箱至关重要。 借助 WP Mail SMTP 的其他 SMTP 功能,您可以轻松集成您最喜欢的邮件程序。 对于今天的教程,我们将使用 Mailtrap 提供的可靠 SMTP 服务。

但在将其与您的 WordPress 网站集成之前,您首先需要创建一个帐户并按照应用程序内的向导来验证您的域。 为此,您应该有权访问您域的 DNS 记录。 在其中,您必须添加现成的 SPF、DKIM 和 DMARC 记录,然后按验证域。

Mailtrap 域验证

一旦您的帐户启动并运行,请返回“发送域”并按已验证的域。 然后单击“API 和 SMTP”,选择“SMTP”,然后复制凭据。

Mailtrap api smtp 集成

返回 WP Mail SMTP 并在 Mailer 选项卡下选择 Other SMTP。

Mailtrap 其他 SMTP

您会看到一组空白字段。 使用 Mailtrap 的 SMTP 凭据填写它们:

  • SMTP 主机:live.smtp.mailtrap.io
  • 加密方式:TLS(也可以选择SSL,但推荐使用TLS)
  • SMTP端口:587(会自动填写)
  • 身份验证:打开
  • SMTP 用户名:api
  • SMTP 密码:您的 SMTP 密码
邮件陷阱 SMTP 设置

按“保存设置”。 您会看到一个确认窗口。 如果一切配置正确并且 WordPress 发送 SMTP 电子邮件,请返回您的 Mailtrap 帐户并按“验证设置”。

Mailtrap 验证设置

使用内置邮件程序

让我们继续第二个集成选项——使用内置邮件程序来确保 WordPress 使用 SMTP 发送电子邮件。 使用此方法,您可以选择 WP Mail SMTP 的邮件程序之一,包括 SendLayer、SMTP.com、Sendinblue、Amazon SES 等。此方法也可以用于在 WordPress 甚至 Microsoft 365/Outlook 中设置 Gmail SMTP。

大多数 ESP 的集成过程都是相似的。 当然,您应该有一个工作帐户才能将其与 WP Mail SMTP 集成。 您只需要选择邮件程序并输入您帐户的 API 密钥。 有关说明将在 ESP 的官方文档中提供。

内置邮件程序

对于某些邮件程序,您可能需要输入您的发送域、消息流 ID 或区域。 此处提供了每个邮件程序的详细说明。

HubSpot WordPress 插件

HubSpot WordPress 插件

WP Mail SMTP主要用于配置WordPress使用SMTP发送邮件。 相反,HubSpot WordPress 插件是适用于您的 WordPress 网站的完整客户关系管理器 (CRM) 插件。 在它的帮助下,您可以使用注册表单构建电子邮件列表,通过实时聊天与访客交流,以及分析重要指标。

最重要的是,HubSpot WordPress 插件使您能够集成您喜欢的 ESP,以(手动或自动)向您的联系人发送营销电子邮件。 它还具有内置模板和拖放式编辑器。 因此,如果您正在寻找的不仅仅是 SMTP 配置,HubSpot 可能是您的不错选择。

Gmail 邮件传输协议

Gmail 邮件传输协议

Gmail SMTP 是另一个使用 SMTP 发送电子邮件的 WordPress 插件,但它是专门为 Gmail 设计的。 它依靠 PHPMailer 和本机 wp_mail 函数来发送电子邮件,这意味着您仍然可以使用它们的所有功能。

Gmail SMTP 插件使用 API 和 OAuth 2.0 协议与 Gmail 连接。 这样,您就不必输入任何用户名或密码。 但是,您需要在 Google Developer Console 中创建一个应用程序并配置 OAuth 凭据。 幸运的是,该插件的官方页面列出了必要的说明。

发布 SMTP 邮件程序

发布 SMTP 邮件程序

我们这里的最后一个选项是 Post SMTP Mailer。 它是一个用户友好的插件,可让您使用 SMTP 或 API 集成 ESP。 免费版支持 Mailgun、SendGrid、Mandrill(现在是 Mailchimp 交易电子邮件)、SparkPost、Postmark、Sendinblue 和 Gmail API。 专业版将使您能够访问 Zoho Mail、Amazon SES 和 Microsoft 365。

此外,Post SMTP Mailer 会存储电子邮件日志并在出现任何问题时发送 Chrome 通知。

如何在 WordPress 中测试电子邮件?

为确保您的配置可以成功从 WordPress 发送电子邮件,您需要测试您的电子邮件。 大多数插件都带有用于一些基本检查的默认测试功能。

例如,使用 WP Mail SMTP,您可以导航到“电子邮件测试”选项卡,输入您的电子邮件地址,然后按“发送电子邮件”。 如果配置正确,您应该会在收件箱中找到一封测试邮件。 如果没有,WP Mail SMTP 将显示错误日志。

WP Mail SMTP 邮件测试

但是,测试电子邮件发送功能并不总是足够的。 在向您的联系人发送电子邮件之前,测试 HTML、验证标头和检查您的垃圾邮件分数是必不可少的。 这就是 Mailtrap 的另一个解决方案,电子邮件测试可以帮助您的地方。 它会将您的 WordPress 电子邮件捕获到一个虚拟收件箱中,确保它们都不会到达收件人的收件箱。

与电子邮件发送类似,电子邮件测试可以使用其 SMTP 凭据与 WordPress 插件集成。 您可以通过展开“我的收件箱”并按“显示凭据”在您的帐户中找到这些凭据。 示例 SMTP 设置如下所示:

  • SMTP 主机:sandbox.smtp.mailtrap.io
  • 加密:TLS 或 SSL
  • SMTP 端口:465 或 587
  • 身份验证:打开
  • SMTP 用户名:<您的 SMTP 用户名>
  • SMTP 密码:<您的 SMTP 密码>

如果配置正确,几秒钟后,您的测试电子邮件将弹出到您的虚拟收件箱中。

Mailtrap 电子邮件测试

正如我们所见,要将 WordPress 配置为使用 SMTP 发送电子邮件,您有两个主要选择:使用 PHPMailer 编码或使用插件。 第一个选项更适合开发人员,而第二个选项更适合营销人员。 无论选择哪种方法,最主要的是找到解决 PHP 缺点的方法。

我们上面列出的所有插件都允许您使用 Gmail 的 SMTP。 虽然偶尔发送电子邮件已经足够了,但最好选择可靠的 ESP 来发送大量电子邮件。 否则,您的电子邮件很可能会被标记为垃圾邮件。

享受!