跳到主要内容

如何清理 VPS 或独立主机上的邮件队列

邮件发送卡住了?可能是邮件队列出了问题。别担心,在 VPS 或独立服务器上清理邮件队列比你想象的要简单。本指南将一步步带你完成清理邮件队列的过程。


点击以下任意章节,跳转到指南对应部分。

  • 你需要的准备工作
  • 通过 SSH 登录
  • 清理队列
  • 总结

你需要的准备工作

  • 服务器上 root 用户的密码。
  • 一个 SSH 客户端,比如 Terminal(Mac、Linux)或 Putty(Windows)。
  • 一个指向你服务器的域名或服务器的 IP 地址。

通过 SSH 登录

注意:以下步骤需要知道服务器的 root 密码。如果你不知道 root 密码或还未设置,请参阅登录 WHM。

使用 Terminal(Mac、Linux)

  1. 打开 Terminal
  2. 输入以下命令通过 SSH 登录服务器:
    ssh root@exampledomain.com
    **注意:**将 exampledomain.com 替换为你的域名或 IP 地址。
  3. 如果收到关于主机真实性的提示,输入 **yes** 继续连接。
  4. 当提示输入密码时,输入服务器的 root 密码。
    **注意:**输入密码时屏幕不会有任何显示,这是正常现象。

使用 Putty(Windows) 在 Windows 上建立 SSH 连接需要一个兼容的 SSH 客户端,比如 Putty。你可以从 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 Putty。

  1. 打开 Putty
  2. 在主机名处输入你的域名或 IP 地址
  3. 端口号输入 22
  4. 协议选择 SSH
  5. 点击 Open 按钮。
  6. 如果收到关于主机真实性的提示,输入 **yes** 继续连接。
  7. 当提示输入用户名时,输入 **root**
  8. 当提示输入密码时,输入 root 用户的密码。
    **注意:**输入密码时屏幕不会有任何显示,这是正常现象。

清理队列

成功以 root 用户身份通过 SSH 登录后,需要运行几个命令来清理邮件队列文件和邮件数据库。

停止邮件系统

在清理队列之前,建议先停止邮件系统。这样可以在清理时让邮件系统离线。输入以下命令停止邮件服务:

service exim stop

停止 Exim 以清理邮件队列

清理邮件文件

Exim 停止后,输入以下命令清理邮件文件:

exim -bp | awk '{print $3}' | xargs exim -Mrm

**注意:**如果队列较大,此命令可能需要一些时间执行。执行过程中不会有进度提示,但会显示正在删除的邮件列表。命令行提示符返回时表示完成。

清理数据库

  1. 运行以下命令停止 tailwatchd 服务:

/scripts/restartsrv_tailwatchd --stop 2. 然后运行以下命令停止 eximstats 服务:

/scripts/restartsrv_eximstats --stop 3. 输入以下命令删除邮件统计数据库:

find /var/cpanel -name 'eximstats_db*' -exec rm {} +

删除 EximStats(清理邮件队列) 4. 运行以下命令重启 eximstats 并重新创建邮件统计数据库:

/scripts/restartsrv_eximstats

创建 EximStats 5. 最后,输入以下命令启动 tailwatchd 服务:

/scripts/restartsrv_tailwatchd --start

清理日志

清理日志可以减少文件数量,避免因邮件队列过大导致文件数激增。这很重要,因为保持文件数量较低有助于服务器性能提升。

  • 输入以下命令清理日志:

rm -rf /var/spool/exim/msglog/*

重启邮件系统

输入以下命令重新启动邮件系统:

service exim restart
启动 Exim 邮件系统启动后,邮件队列清理完成。

总结

就是这样!你已经成功清理了邮件队列。请记住,健康的邮件队列对于顺畅、不中断的邮件发送非常重要。通过这个简单的过程,丢失的邮件将顺利送达目的地。