跳至主要內容

邮件服务器Postfix

知识库编程技巧CentOSLinux大约 2 分钟

邮件队列

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
# 查看队列中的邮件
mailq
postqueue -p
# 查看队列大小
mailq | wc -l
postqueue -p | wc -l
# 查看信件內容
postcat -q Queue_ID
# 强制发送队列中的邮件
/usr/sbin/postfix flush
postqueue -f
# 暂缓发送队列中的问题邮件
postsuper -h Queue_ID
postsuper -h ALL deferred
# 解除暂缓发送的邮件
postsuper -H Queue_ID
postsuper -H ALL deferred
# 重新加入队列:
postsuper -r Queue_ID
postsuper -r ALL
# 刪除指定邮件
postsuper -d Queue_ID
# 清空队列中的邮件
postsuper -d ALL
# 删除队列中有问题的邮件(正在deferred列表中的邮件,直接删除邮件文件,可看出哪些信被刪除了 ):
postsuper -d ALL deferred
find /var/spool/postfix/deferred -type f -exec rm -vf {} \;
# find /var/spool/postfix/defer -type f -exec rm -vf {} \;
# 列出所有问题邮件(目前所有无法发送的邮件)
find /var/spool/postfix/deferred -type f -exec ls -l --time-style=+%Y-%m-%d_%H:%M:%S {} \;
# 删除已经3天未发出的邮件
find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f {} \;
# 删除超过5天的问题邮件的退信记录(超过5天的“defer”列表中的退信)
find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f {} \;

常用日志

# 查看系统日志:
tail -f /var/log/messages
# 查看邮件日志:基本很全面,几乎所有遇到的邮件问题都可以通过该日志来处理
tail -f /var/log/maillog
# maildrop相关
tail -f /var/log/maildrop.log
# clamd相关:
tail -f /var/log/clamav/clamd.log
tail -f /var/log/clamav/freshclam.log