VPS 或独立服务器:如何清理邮件队列
您的邮件是否发送失败?邮件队列问题可能是原因所在。在您的 VPS 或独立服务器上清理邮件队列其实非常简单。本文概述了清理邮件队列的逐步流程。
- 您需要准备的内容
- 通过 SSH 登录
- 使用终端(Mac,Linux)
- 使用 PuTTY(Windows)
- 清理邮件队列
- 停止邮件系统
- 清理邮件文件
- 清理数据库
- 清理日志
- 重启邮件系统
您需要准备的内容
- 服务器的 root 用户密码。
- SSH 客户端,如终端(Mac,Linux)或 PuTTY(Windows)。
- 服务器的 IP 地址或指向服务器的域名。
通过 SSH 登录
注意:要按照这些说明操作,您需要知道服务器的 root 密码。如果您不知道 root 密码或尚未设置,请参阅:如何更改 WHM 密码。
使用终端(Mac,Linux)
- 打开终端
- 运行以下命令通过 SSH 登录服务器:
ssh root@exampledomain.com**注意:**将 exampledomain.com 替换为您的域名或 IP 地址。 - 如果收到有关主机真实性的提示,输入
**yes**继续连接。 - 系统提示时输入服务器的 root 密码。
**注意:**输入密码时,屏幕上不会有任何显示,这是正常现象。
使用 PuTTY(Windows)
在 Windows 上建立 SSH 连接,您需要兼容的客户端,如 PuTTY。您可以从 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 PuTTY。
- 打开 PuTTY
- 在主机名处输入您的域名或 IP 地址。
- 端口号输入 22。
- 确保协议设置为 SSH。
- 点击 打开 按钮。
- 如果收到有关主机真实性的提示,输入
**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
邮件系统启动后,邮件队列清理完成。