无论您经营的是简单的 WordPress 网站还是大型 WooCommerce 商店,您都需要可靠的电子邮件发送功能。在发送电子邮件方面,WordPress 有多个限制。

为确保您的交易电子邮件成功发送和交付,您需要正确设置 WordPress SMTP 设置。在本教程中,我们将教您如何操作并列出各种选项。

为什么需要在 WordPress 中设置 SMTP?

WordPress 使用 PHP 邮件功能发送电子邮件,出于多种原因,这不是最佳选择。

首先,默认电子邮件配置的功能非常有限——您无法轻松构建 HTML 模板、嵌入图像或添加附件。

其次,PHPmail()缺少适当的电子邮件标头。这就是为什么一些网络主机停用 WordPress 邮件设置的原因。结果,电子邮件传递受到阻碍,此类电子邮件落入垃圾邮件文件夹,降低了域声誉。

为提高电子邮件的送达率,建议使用简单邮件传输协议 (SMTP) 发送电子邮件。与PHPmail()函数不同的是,SMTP服务器需要一个header认证,支持SSL、TLS等安全机制。

一些 WordPress 主机可能已经为每个网站预配置了一个 SMTP 服务器——但这更像是一个罕见的例外,而不是托管服务提供商的趋势。

因此,您必须手动设置 SMTP。为此,您有两个主要选择:

  • 使用 PHPMailer 库;
  • 借助 WordPress 插件创建 SMTP 连接。

使用 PHPMailer 设置 WordPress SMTP

要使用 SMTP 从 WordPress 以编程方式发送电子邮件,您需要 PHPMailer 库和一些编码。

第一步是根据这些说明安装作曲家。在 WordPress 安装的根目录中,创建一个 composer.json 文件。将以下代码添加到 composer.json 文件以需要 PHPMailer 库:

"phpmailer/phpmailer": "^6.7.1"

运行 composer install 命令来安装库。要指示 WordPress 需要 PHPMailer,您应该将以下代码行添加到您的插件或主题文件中:

require_once( 'path/to/vendor/autoload.php' );

请记住:您应该替换path/to为 WordPress 安装中供应商目录的实际路径。

以下脚本将配置 PHPMailer 设置以使用 SMTP 服务器从本地主机发送带有附件的 HTML 电子邮件。

<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;
//Load Composer's autoloader
require 'vendor/autoload.php';
//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = 'your_SMTP_host'; //Set the SMTP server to send through
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->Username = 'your_SMTP_username'; //SMTP username
$mail->Password = 'your_SMTP_password'; //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption
$mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
//Recipients
$mail->setFrom('from@yourdomain.com', 'Mailer');
$mail->addAddress('john.doe@example.com', 'Recipient'); //Add a recipient
$mail->addAddress('kate.doe@example.com'); //Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('oliver.doe@example.com');
$mail->addBCC('jason.doe@example.com');
//Attachments
$mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = 'You’re Awesome';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

如何使用 WP Mail SMTP 插件设置 WordPress SMTP 电子邮件设置

可以在没有 PHPMailer 的情况下设置 WordPress SMTP。在那种情况下,我们需要安装一个 SMTP 插件。

市场上有多种选择,但其中最受欢迎的是WPForms 的WP Mail SMTP。它有免费和付费版本,允许您集成您首选的 SMTP 提供商或选择一个内置的电子邮件服务提供商。

WP Mail SMTP 和 PHP 邮件功能的区别在于 PHPmail()使用本地邮件服务器,而插件用于配置 PHP 邮件以使用 SMTP 服务器。

可以通过三种方式将 WP Mail SMTP 连接到您的 WordPress 网站:

  • 插件精英版提供的白手套设置;
  • 使用第三方 SMTP 服务器集成;
  • 使用第三方 API 进行集成。

白手套设置

WP Mail SMTP 为其精英用户提供白手套设置服务。您将选择首选的邮件发送者、发件人姓名和发件人地址,并为他们提供您站点的凭据。他们将为您配置插件设置,测试设置,并在一切准备就绪后与您联系。

要申请 White Glove Setup,请登录您的 WP Mail SMTP 帐户并找到“下载”选项卡。在那里,您会在 Elite 许可详细信息下找到“申请 White Glove 设置”。

来源:WP Mail SMTP

将弹出一个表格以收集必要的信息,例如您的网站凭据、首选邮件程序、您的托管服务提供商的 DNS 访问权限等。

来源:WP Mail SMTP

有关 White Glove Setup 的更多信息,请参见此处。

使用第三方 SMTP 服务器进行集成

尽管前面的选项听起来很简单,但它有其局限性。它只允许您在推荐的邮件程序之间进行选择:SendLayer、Sendinblue 和 SMTP.com。如果您想设置自定义 SMTP 服务器或集成第三方电子邮件提供商,则必须完成手动设置。

在本节中,我们将专注于集成自定义 SMTP 服务器。这可以是免费的 SMTP 服务器或 SMTP 服务,例如Mailtrap Email Sending。它是一种电子邮件基础设施,可以及时将电子邮件发送到收件人的收件箱。

通过电子邮件发送,您可以通过送达率警报监控送达率。每周一提供每周报告,以便快速查看重要的电子邮件统计信息。如果发生意外发送问题,严重警报将立即通知您。然后您可以访问可操作的分析,以便轻松快速地进行故障排除。电子邮件发送有两种解决方案:API 和 SMTP 服务。

要将电子邮件发送与您的 WordPress 网站、电子商务商店或 Contact Form 7 连接,您首先需要创建一个帐户并使用 SPF、DKIM 和 DMARC 身份验证协议验证您的域(可在此处获得分步说明)。

帐户准备就绪后,选择“发送域”类别并转到“API 和 SMTP”选项卡。选择 SMTP 并保存这些凭据。

现在返回您的 WordPress 仪表板并找到“插件”部分。按“添加新”并在搜索框中键入“WP Mail SMTP”。安装插件并激活它,然后直接进入设置页面。

在“常规”选项卡下,第一部分是“许可证”,它允许您连接您的付费帐户,无论是专业版、精英版还是其他级别。只需粘贴许可证密钥并按“连接”。如果您使用的是免费版本,则可以跳过此步骤。

然后您必须指明发件人姓名和发件人电子邮件。在这里,您应该输入您希望在电子邮件中显示的名称以及将用于外发电子邮件的电子邮件地址。这将是本教程前一部分中包含已验证域的电子邮件。

注意:根据提供商的不同,此步骤此时可能会显示为灰色。如果是这样,请集成下面的邮件程序,稍后再返回此步骤。 

您还可以配置返回路径以匹配发件人地址。这样,退回的电子邮件将返回到发件人的电子邮件地址。如果您不希望发件人电子邮件与返回路径相同,请取消选中该框。

现在您必须向下滚动并选择“其他 SMTP”作为您的邮件程序。在这里,您需要从 Mailtrap 帐户复制的凭据:

  • SMTP 主机:send.smtp.mailtrap.io
  • 加密:无、SSL 或 TLS(出于安全原因,我们建议选择 SSL 或 TLS)
  • SMTP 端口:465(用于 SSL)和 587(用于 TLS)
  • SMTP 身份验证:打开或关闭(始终打开)
  • SMTP 用户名:api
  • SMTP 密码:您从帐户复制的 SMTP 密码(为了额外的安全措施,您可以将密码存储在 wp-config.php 文件中。有关 wp-config.php 的更多信息,请参阅这些说明)。

单击“保存设置”,您的邮件将被保存。为确保一切设置正确,请导航至“电子邮件测试”选项卡,打开或关闭 HTML,输入所需的电子邮件地址,然后按“发送电子邮件”。

当电子邮件到达您的收件箱时,返回您的电子邮件发送帐户并在“API 和 SMTP”选项卡中按“验证设置”。

立即尝试 Mailtrap 电子邮件发送

使用第三方 API 集成

最后,您可以集成第三方 API 以使用 WP Mail SMTP。

免费版本允许用户连接 SendLayer、SMTP.com、SendinBlue、Mailgun、SendGrid、Gmail(免费 Gmail SMTP 和 Google Workspace)、Postmark 和 SparkPost 等邮件程序。

专业版还包括 Amazon SES、Zoho Mail 和 Office 365/Microsoft Outlook。

要连接这些邮件程序,首先,您需要下载插件并按照我们上面列出的说明进行操作。然后,您可以从 WP Mail SMTP 设置页面连接邮件程序或启动设置向导。当然,您应该拥有寄件人的工作帐户才能开始使用。

您需要提供 API 密钥和域名等凭据,然后输入发件人姓名和发件人电子邮件。对于某些邮件程序,您可能需要定义 API 端点的区域。查看您的寄件人文档以获取更多信息。

除 Gmail 外,所有邮件程序的说明都是相似的。如果您使用的是 Gmail 或 Google Workspace 电子邮件帐户,则需要生成客户端 ID 和应用密码。有关详细信息,请参阅我们的WordPress Gmail SMTP博客文章。 

需要考虑的更多 WordPress SMTP 插件

WP Mail SMTP 并不是唯一允许您调整 WordPress 网站电子邮件服务器设置的插件。事实上,有数百个。你如何选择合适的?检查以下详细信息:

  • 活动安装数量;
  • 与最新 WordPress 版本的兼容性/测试;
  • 维护和更新的频率;
  • 评论。

例如,WP SMTP Config插件没有针对最新的三个 WordPress 更新进行测试,并且已经 4 年没有更新了。这意味着不再维护或支持此插件。选择这样的选项不是最好的主意。

我们根据用户的评论挑选了三个可以正常使用的流行插件,并定期更新和测试。

简单的 WP SMTP

Easy WP SMTP 是一个为 WordPress 配置 SMTP 的简单插件。它使用 PHPMailer 库。其功能包括:

  • 与 Gmail、Yahoo 和 Hotmail SMTP 以及 SMTP 中继服务集成
  • 调试和记录
  • 自定义电子邮件标头
  • 使用附加组件导出和导入 SMTP 设置。

调整 Easy WP SMTP 设置相当容易,因为它类似于 WP Mail SMTP。

发布 SMTP 邮件程序/电子邮件日志

Post SMTP Mailer/Email Log 利用 Zend_Mail 并且除了 SMTP 服务器设置之外还提供以下功能:

  • 电子邮件记录
  • 自定义电子邮件标头以及抄送和密送
  • Gmail、Hotmail 和 Yahoo 的 OAuth 2.0 身份验证
  • 对 Gmail、Mailgun、Mandrill、Sendgrid、Sendinblue、Postmark 和 SparkPost 的 API 支持
  • 可以发送到管理员电子邮件或 Slack 的电子邮件失败通知。

冰淇淋快递

Icegram Express(以前称为 Email Subscribers & Newsletters)不仅仅是一个 SMTP 插件——它还是一个电子邮件营销工具。它自动从您的 WordPress 网站发送时事通讯和管理订阅者。该插件使您能够设置邮件程序或使用其他已配置的 SMTP 插件。

主要能力包括:

  • HTML 编辑器
  • 广播发送
  • 电子邮件调度
  • 订阅箱
  • 发送电子邮件报告
  • 支持本地化和国际化
  • 用户访问控制

注意:自定义 SMTP 和其他邮件程序仅适用于付费订阅。 

如何使用 Mailtrap 通过 SMTP 测试电子邮件

现在您的邮件程序已设置好,是时候测试电子邮件了。这不仅对于确保 SMTP 连接正确运行至关重要,而且对于验证 HTML/CSS 和检查垃圾邮件分数也很重要。您可以使用Mailtrap 电子邮件测试来完成所有这些工作。

电子邮件测试是一个电子邮件沙箱,允许您在安全的开发和 QA 环境中检查和调试电子邮件,而不会向用户发送垃圾邮件。它使开发人员能够使用灵活的 API 自动化测试流程、检查电子邮件标头、检查 HTML/CSS 并获得详细的垃圾邮件分析。

电子邮件测试可以使用 PHPMailer 库或 SMTP 凭证与您的 WordPress 网站集成。

登录您的Mailtrap 帐户并导航到“沙盒”选项卡。进入默认创建的“我的收件箱”,找到“SMTP 设置”选项卡。在“集成”下,从下拉菜单中选择 PHPMailer。使用您的凭据复制生成的代码并将其粘贴到您的 PHPMailer 脚本中:

$phpmailer = new PHPMailer();
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.mailtrap.io';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 2525;
$phpmailer->Username = 'hb76m953410544';
$phpmailer->Password = 'j368826db440q3';

如果您使用的是 SMTP 插件,请将其配置为使用电子邮件测试凭据。要查看它们,请按“SMTP 设置”下的“显示凭据”。复制这些凭据并将它们粘贴到插件的设置中。

电子邮件发送和电子邮件测试都是Mailtrap 电子邮件传送平台的一部分。这意味着您可以在一个地方测试、发送和控制您的电子邮件基础设施。