跳到主要内容

VPS 或独立服务器:如何清理邮件队列

您的邮件是否发送失败?邮件队列问题可能是原因所在。在您的 VPS 或独立服务器上清理邮件队列其实非常简单。本文概述了清理邮件队列的逐步流程。

  • 您需要准备的内容
  • 通过 SSH 登录
  • 使用终端(Mac,Linux)
  • 使用 PuTTY(Windows)
  • 清理邮件队列
  • 停止邮件系统
  • 清理邮件文件
  • 清理数据库
  • 清理日志
  • 重启邮件系统

您需要准备的内容

  • 服务器的 root 用户密码。
  • SSH 客户端,如终端(Mac,Linux)或 PuTTY(Windows)。
  • 服务器的 IP 地址或指向服务器的域名。

通过 SSH 登录

注意:要按照这些说明操作,您需要知道服务器的 root 密码。如果您不知道 root 密码或尚未设置,请参阅:如何更改 WHM 密码。

使用终端(Mac,Linux)

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

使用 PuTTY(Windows)

在 Windows 上建立 SSH 连接,您需要兼容的客户端,如 PuTTY。您可以从 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载 PuTTY。

  1. 打开 PuTTY
  2. 在主机名处输入您的域名或 IP 地址
  3. 端口号输入 22
  4. 确保协议设置为 SSH
  5. 点击 打开 按钮。
  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 邮件系统启动后,邮件队列清理完成。