AI 摘要

本文解决了WordPress因SMTP邮件同步发送导致评论提交卡顿的问题,推荐使用SMTP Mailing Queue插件将邮件改为后台异步队列处理。配置完成后,用户提交评论时邮件任务立即入队,不再阻塞前台请求,显著提升了评论体验。

问题背景

在 WordPress 站点中,当游客或用户发表评论时,系统会触发内置的 wp_mail() 函数或相关邮件发送插件。这一过程需要服务器与远端 SMTP 服务器进行通信,若网络延迟较高或 SMTP 服务响应较慢,会直接导致评论提交卡顿,体验十分糟糕。

解决思路

将邮件的即时发送改为后台队列异步处理,用户评论时仅生成邮件任务加入队列,由独立进程或计划任务在后台逐条发送,从而消除用户等待时间。

所需插件

使用 SMTP Mailing Queue(SMTP 邮件队列)插件即可实现上述功能。由于该插件已从官方仓库下架,可通过本站网盘下载:

📥 下载地址:https://pan.mcbebbs.cn/s/eyXF3

配置步骤

一、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优化排版。