问题背景
在 WordPress 站点中,当游客或用户发表评论时,系统会触发内置的 wp_mail() 函数或相关邮件发送插件。这一过程需要服务器与远端 SMTP 服务器进行通信,若网络延迟较高或 SMTP 服务响应较慢,会直接导致评论提交卡顿,体验十分糟糕。
解决思路
将邮件的即时发送改为后台队列异步处理,用户评论时仅生成邮件任务加入队列,由独立进程或计划任务在后台逐条发送,从而消除用户等待时间。
所需插件
使用 SMTP Mailing Queue(SMTP 邮件队列)插件即可实现上述功能。由于该插件已从官方仓库下架,可通过本站网盘下载:
配置步骤
一、SMTP 发信设置
进入插件设置页 SMTP Settings,填写您的发信邮箱参数,如图所示:

填写完毕后点击 保存更改。
二、高级队列设置
切换至 Advanced Settings 页面,按以下建议进行配置(参照截图):

各项参数说明及推荐值:
- Queue Limit(每次处理邮件数)
单次队列触发时发送的邮件数量。根据服务器性能设定,建议1 ~ 10。 - Secret Key(安全密钥)
用于外部安全触发队列,请务必保密,切勿泄露。 - wp_cron interval(伪 Cron 间隔)
当未配置系统级真实定时任务时,由 WordPress 内置 Cron 触发队列的间隔。
建议设180 ~ 300秒(即 3 ~ 5 分钟)。设置过短会频繁消耗资源,过长则邮件延迟较大。 - real cronjob(真实定时任务)
若希望获得更精准、高效的触发,可在服务器面板(如 cPanel、宝塔)中配置真实 Cron 任务,指向插件指定的 URL。
若不配置,插件将继续依赖 WordPress 的wp_cron伪 Cron 机制,多数场景下亦可满足需求。 - Min. recipients to enqueue(最少入队收件人数)
仅当收件人数 ≥ 此值时邮件才会进入队列,否则直接发送。一般保持默认值1即可。 - Max. retry for mail sending(最大重试次数)
邮件发送失败后的重试次数,足以应对网络临时抖动。建议设置3 ~ 5次。 - Sent mail storage size(已发送邮件存储上限)
保留已发送邮件日志的数量,用于调试。无需调试时建议设为0,以减少数据库占用。
完成以上设置后,点击 保存更改。
结语
至此,SMTP 邮件队列已生效。访客提交评论时邮件任务将立即入队,不再阻塞前台请求。
本文使用AI优化排版。
Comments NOTHING