如何清理 VPS 或独立主机上的邮件队列
邮件发送卡住了?可能是邮件队列出了问题。别担心,在 VPS 或独立服务器上清理邮件队列比你想象的要简单。本指南将一步步带你完成清理邮件队列的过程。
点击以下任意章节,跳转到指南对应部分。
- 你需要的准备工作
- 通过 SSH 登录
- 清理队列
- 总结
你需要的准备工作
- 服务器上 root 用户的密码。
- 一个 SSH 客户端,比如 Terminal(Mac、Linux)或 Putty(Windows)。
- 一个指向你服务器的域名或服务器的 IP 地址。
通过 SSH 登录
注意:以下步骤需要知道服务器的 root 密码。如果你不知道 root 密码或还未设置,请参阅登录 WHM。
使用 Terminal(Mac、Linux)
- 打开 Terminal
- 输入以下命令通过 SSH 登录服务器:
ssh root@exampledomain.com
**注意:**将 exampledomain.com 替换为你的域名或 IP 地址。 - 如果收到关于主机真实性的提示,输入
**yes**继续连接。 - 当提示输入密码时,输入服务器的 root 密码。
**注意:**输入密码时屏幕不会有任何显示,这是正常现象。
使用 Putty(Windows) 在 Windows 上建立 SSH 连接需要一个兼容的 SSH 客户端,比如 Putty。你可以从 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 Putty。
- 打开 Putty
- 在主机名处输入你的域名或 IP 地址。
- 端口号输入 22。
- 协议选择 SSH。
- 点击 Open 按钮。
- 如果收到关于主机真实性的提示,输入
**yes**继续连接。 - 当提示输入用户名时,输入
**root**。 - 当提示输入密码时,输入 root 用户的密码。
**注意:**输入密码时屏幕不会有任何显示,这是正常现象。
清理队列
成功以 root 用户身份通过 SSH 登录后,需要运行几个命令来清理邮件队列文件和邮件数据库。
停止邮件系统
在清理队列之前,建议先停止邮件系统。这样可以在清理时让邮件系统离线。输入以下命令停止邮件服务:
service exim stop

清理邮件文件
Exim 停止后,输入以下命令清理邮件文件:
exim -bp | awk '{print $3}' | xargs exim -Mrm
**注意:**如果队列较大,此命令可能需要一些时间执行。执行过程中不会有进度提示,但会显示正在删除的邮件列表。命令行提示符返回时表示完成。
清理数据库
- 运行以下命令停止 tailwatchd 服务:
/scripts/restartsrv_tailwatchd --stop
2. 然后运行以下命令停止 eximstats 服务:
/scripts/restartsrv_eximstats --stop
3. 输入以下命令删除邮件统计数据库:
find /var/cpanel -name 'eximstats_db*' -exec rm {} +
4. 运行以下命令重启 eximstats 并重新创建邮件统计数据库:
/scripts/restartsrv_eximstats
5. 最后,输入以下命令启动 tailwatchd 服务:
/scripts/restartsrv_tailwatchd --start
清理日志
清理日志可以减少文件数量,避免因邮件队列过大导致文件数激增。这很重要,因为保持文件数量较低有助于服务器性能提升。
- 输入以下命令清理日志:
rm -rf /var/spool/exim/msglog/*
重启邮件系统
输入以下命令重新启动邮件系统:
service exim restart
邮件系统启动后,邮件队列清理完成。
总结
就是这样!你已经成功清理了邮件队列。请记住,健康的邮件队列对于顺畅、不中断的邮件发送非常重要。通过这个简单的过程,丢失的邮件将顺利送达目的地。