关于 wp-gravity-smtp
wp-gravity-smtp 是用于在 WordPress 站点配置和维护 Gravity SMTP 的技能,涵盖邮件服务商设置、投递故障诊断、凭据管理及投递保护措施。
主要功能
- 01配置 API 和 SMTP 服务商
- 02检查版本与安全状态
- 03指导隔离凭据
- 04测试邮件投递并查看日志
- 05设置备用发送方和失败提醒
适用场景
- 01连接事务邮件服务商
- 02排查邮件通知投递失败
- 03检查 API 密钥存储和插件版本
- 04配置备用投递与提醒
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kylebrodeur/ wordpress-agent-kit --skill wp-gravity-smtp安装后在 Claude Code 中输入/wp-gravity-smtp确认已加载。
详细介绍
Gravity SMTP
WordPress 事务性邮件路由与送达跟踪。Gravity SMTP 可替换不可靠的默认 PHP mail(),通过直接调用 API 与服务提供商集成,包括 SendGrid、Mailgun、Postmark、Brevo、Amazon SES、Microsoft 365、Google 或自定义 SMTP。
需要 Elite 或 Nonprofit Gravity Forms 许可证。
适用场景
- 安装或更新 Gravity SMTP
- 配置邮件服务提供商(SendGrid、Mailgun、Postmark 等)
- 诊断邮件送达失败或通知问题
- 审核凭据存储情况(缓解 CVE-2026-4020 风险)
- 设置备用发件服务或送达提醒
- 在 wp-admin 中验证邮件日志
⚠️ CVE-2026-4020 — 请立即更新
Gravity SMTP ≤ 2.1.4 存在一个未经身份验证的 REST 端点,会泄露邮件服务提供商的 API 密钥。请先在所有环境中更新至 v2.1.5+,然后再进行其他操作。
wp gf version gravitysmtp # must be ≥ 2.1.5
wp gf update gravitysmtp # update if needed
官方文档
支持的服务提供商
| 服务提供商 | 类型 | API 密钥来源 |
|---|---|---|
| SendGrid | API | https://app.sendgrid.com/settings/api_keys |
| Mailgun | API | https://app.mailgun.com/settings/api_security |
| Postmark | API | https://account.postmarkapp.com/api_tokens |
| Brevo (Sendinblue) | API | https://app.brevo.com/settings/keys/api |
| Amazon SES | API | AWS IAM 控制台 |
| Microsoft 365 | OAuth | Azure 门户 |
| Google / Gmail | OAuth | Google Cloud Console |
| 自定义 SMTP | SMTP | 您的服务提供商 |
操作步骤
1) 安装并立即验证版本
wp gf install gravitysmtp --activate
# IMMEDIATELY check — CVE-2026-4020
SMTP_VER=$(wp gf version gravitysmtp)
echo "Gravity SMTP: $SMTP_VER"
php -r "exit(version_compare('$SMTP_VER','2.1.5','>=') ? 0 : 1);" \
|| echo "❌ CRITICAL: Update to ≥ 2.1.5"
2) 隔离凭据(必需)
将凭据存储在 wp-config.php 常量中,并从环境变量加载。
切勿将 API 密钥存储在 wp_options 中——即使已修复 CVE,这也是更好的做法。
// wp-config.php
define('GRAVITY_SMTP_SENDGRID_API_KEY', getenv('SENDGRID_API_KEY'));
define('GRAVITY_SMTP_FROM_EMAIL', getenv('SMTP_FROM_EMAIL'));
define('GRAVITY_SMTP_FROM_NAME', 'U of Digital');
在 WP Engine 中设置环境变量(门户中的 Environment Variables),或在本地通过 .env 设置。
3) 在 wp-admin 中配置
前往:Gravity SMTP(左侧边栏)→ Settings → 选择您的服务提供商。
4) 测试送达
# Send a test email via WP-CLI
wp eval "wp_mail('[email protected]', 'Test', 'Gravity SMTP test');"
在 Gravity SMTP → Email Log 中查看邮件日志。
5) CI/CD — 每次部署时检查
# In GitHub Actions post-deploy script or wp gf SCRIPT option:
wp gf version gravitysmtp
6) 备用发件服务 + 提醒
在 Gravity SMTP → Settings → Backup Sender 中配置——主发件服务失败时将切换至备用服务。 设置 Gravity SMTP → Settings → Alerts,以便在邮件送达失败时收到通知。
安全检查清单
# Check version
wp gf version gravitysmtp
# Verify API key is NOT stored in wp_options
wp option get gravitysmtp_sendgrid_api_key 2>/dev/null && \
echo "⚠️ Key in DB — move to wp-config.php" || echo "✓ Not in wp_options"
参考资料
wp-gravity-forms技能——通过wp gf安装 GF 和附加组件- CVE 详情:在 NVD 或 WPScan 上搜索
CVE-2026-4020