如何处理本地MacOS部署的WordPress测试发送邮件问题
本地 MacOS 开发环境默认 不会发送邮件,因为没有正确配置邮件服务器。但是我们可以尝试以下方案:
✅ 方案 1:使用 WP Mail SMTP
插件(推荐)
- 安装插件:
- 在 WordPress 后台,进入 插件 → 安装插件
- 搜索 WP Mail SMTP
- 点击 安装 并 启用
- 设置 SMTP:
- 进入 WP Mail SMTP → 设置
- 选择 Gmail 或其他 SMTP 服务器(如 Mailgun、SendGrid)
- 填写 Gmail SMTP 服务器信息
- 启用 OAuth 认证
- 测试发送邮件
✅ 方案 2:使用 mailhog
(仅适用于本地开发)
MacOS 本地环境默认 不会发送邮件,可以使用 MailHog
来捕获本地邮件。
安装 MailHog
brew install mailhog
运行 MailHog
mailhog
然后打开浏览器访问 http://localhost:8025/
,就能看到 WordPress 发送的邮件。
在 WordPress wp-config.php
添加
define('WP_MAIL_SMTP_HOST', 'localhost');
define('WP_MAIL_SMTP_PORT', 1025);
这样 wp_mail()
发送的邮件就会被 MailHog 捕获。
✅ 方案 3:直接在 PHP 中使用 SMTP
如果你不想安装插件,也不想使用 MailHog,可以在 functions.php
里手动配置 wp_mail()
发送邮件时使用 SMTP:
add_action('phpmailer_init', function($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.gmail.com';
$phpmailer->SMTPAuth = true;
$phpmailer->Username = 'your-email@gmail.com'; // 你的 Gmail 地址
$phpmailer->Password = 'your-app-password'; // Gmail 需要 App Password
$phpmailer->SMTPSecure = 'tls';
$phpmailer->Port = 587;
});
🔹 注意:Gmail 需要开启 “允许不安全应用” 或使用 App Password 才能发送邮件。
🚀 结论
- 推荐使用
WP Mail SMTP
插件,配置 SMTP 服务器,一劳永逸。 - 如果只是本地测试,用
MailHog
直接拦截邮件最简单。 - 如果不想装插件,可以用
phpmailer_init
手动配置 SMTP。
这样,你的 WordPress 本地开发环境就能正常发送邮件了!🎯🚀
如果你已经配置了 Mailhog 并且可以访问 http://localhost:8025/#,但是 Mailhog 没有捕获到 WordPress 发送的邮件,那么可能有以下原因:
1. Mailhog 配置错误: 确保你已经正确配置了 Mailhog。检查 Mailhog 的配置文件(通常位于 ~/.mailhog.conf)是否正确。
2. WordPress 邮件设置错误: 确保你已经正确配置了 WordPress 的邮件设置。检查 WordPress 的 wp-config.php 文件是否包含以下代码:
define(‘MAIL_HOST’, ‘localhost’);
define(‘MAIL_PORT’, 1025);
3. Mailhog 服务器没有启动: 确保 Mailhog 服务器已经启动。你可以使用以下命令启动 Mailhog 服务器:
mailhog
4. WordPress 使用了其他邮件服务器: 确保 WordPress 没有使用其他邮件服务器。检查 WordPress 的 wp-config.php 文件是否包含其他邮件服务器的配置。
5. Mailhog 的捕获模式: 确保 Mailhog 的捕获模式正确。检查 Mailhog 的配置文件是否包含以下代码:
capture:
mode: “all”