前言

本文主要介绍一下postfix的常用命令及邮件队列的管理。

Postfix有以下四种邮件队列,均由管理队列的进程统一进行管理:

  • maildrop:本地邮件放置在 maildrop 中,同时也被拷贝到 incoming 中。
  • incoming:放置正在到达队列或管理进程尚未发现的邮件。
  • active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。
  • deferred:放置不能被投递的邮件。可能是推迟发送的邮件

基本管理命令

  • 启动postfix:/usr/sbin/postfix start
  • 停止postfix:/usr/sbin/postfix stop
  • 检查postfix配置文件:/usr/sbin/postfix check
  • 显示Postfix当前生效的配置信息:postconf -n
  • 重新读取postfix配置文件:/usr/sbin/postfix reload

邮件管理命令

  • 查看队列中的邮件:mailqpostqueue -p

  • 查看队列大小:mailq | wc -lpostqueue -p | wc -l

  • 查看信件內容:postcat -q Queue_ID

  • 强制发送队列中的邮件:/usr/sbin/postfix flushpostqueue -f

  • 暂缓发送队列中的问题邮件:postsuper -h Queue_IDpostsuper -h ALL deferred

  • 解除暂缓发送的邮件:postsuper -H Queue_IDpostsuper -H ALL deferred

  • 重新加入队列:postsuper -r Queue_IDpostsuper -r ALL

  • 刪除指定邮件:postsuper -d Queue_ID

  • 清空队列中的邮件:postsuper -d ALL

  • 删除队列中有问题的邮件(正在deferred列表中的邮件,直接删除邮件文件,可看出哪些信被刪除了 ):

    1
    2
    3
    postsuper -d ALL deferred
    find /var/spool/postfix/deferred -type f -exec rm -vf {} \;
    # find /var/spool/postfix/defer -type f -exec rm -vf {} \;
  • 列出所有问题邮件(目前所有无法发送的邮件):

    1
    find /var/spool/postfix/deferred -type f -exec ls -l --time-style=+%Y-%m-%d_%H:%M:%S {} \;
  • 删除已经3天未发出的邮件

    1
    find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f {} \;
  • 删除超过5天的问题邮件的退信记录(超过5天的 defer 列表中的退信)

    1
    find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f {} \;

    一些相关的日志

  • 查看系统日志:

    1
    tail -f /var/log/messages
  • 查看邮件日志:基本很全面,几乎所有遇到的邮件问题都可以通过该日志来处理

    1
    tail -f /var/log/maillog
  • maildrop 相关

    1
    tail -f /var/log/maildrop.log
  • clamd 相关:

    1
    2
    tail -f /var/log/clamav/clamd.log
    tail -f /var/log/clamav/freshclam.log

    原文出处:https://www.cnblogs.com/tssc/p/7512437.html