Linux-Postfix&Extmail邮件队列问题及日常维护

邮件队列相关:

Postsuper:postsuper命令是postfix队列维护作业。该命令的使用仅限于超级用户。

默认情况下,postsuper执行在所有Postfix队列目录中使用-s和-p命令行选项所请求的操作,这包括带有邮件文件的传入,活动和 延迟目录以及反弹, 延迟,跟踪和刷新目录与日志文件。

Postsuper语法格式

postsuper [-psSv] [-c config_dir] [-d queue_id] [-h queue_id] [-H queue_id] [-r queue_id] [directory ...]

参考链接:

http://www.tutorialspoint.com/unix_commands/postsuper.htm

http://www.postfix.org/postsuper.1.html

Mailq语法:mailq [-q]

mailq可列出待寄邮件的清单,包括邮件ID,邮件大小,邮件保存时间,寄信人,收信人,以及邮件无法寄出的原因,提供管理员参考的信息。mailq实际上是执行sendmail -bp指令。参数: -v 显示较详细的信息。

1.查询邮件列表:

postqueue -p

mailq

postqueue -p |tail

postqueue -p | wc -l

2. 显示邮件內容:postcat -q Queue_ID

2.删除队列:

  • 删除队列中所有退信邮件:postsuper -d ALL deferred
  • 刪除某ID邮件:postsuper -d Queue_ID

  • 清空某用户邮箱队列所有邮件

mailq | awk "/[email protected]/ {print $1}" | tr -d "*" | xargs -n 1 postsuper -d

  • 全部刪除(该操作会删除所有队列信息,请三思):postsuper -d ALL
  • 删除邮件队列

mailq | tail +2 | awk 'BEGIN { RS = "" } / [email protected]\.org$/ { print $1 }' | tr -d '*!' | postsuper -d

postsuper -d ALL hold/deffered... 删除某个队列里所有邮件

postqueue -f (全部)

postqueue -s 主机名称(个别对象)

  • 清除单个用户的邮件队列postquene

#!/bin/bash

cd /tmp

/usr/sbin/postqueue -p|egrep '[email protected]'|awk '{print $1}' > spam_queue.txt

for i in `cat /tmp/spam_queue.txt`

do

/usr/sbin/postsuper -d $i

done

3.其他操作:

  • 扣住邮件:postsuper -h Queue_ID
  • 回复某邮件:postsuper -H Queue_ID
  • 重新排程:

postsuper -r Queue_ID

postsuper -r ALL

  • 立即投递队列中所有邮件(慎用):postfix flush
  • 查看队列邮件:postqueue -p

服务相关:

  • Postfix启动:postfix start
  • Postfix停止:postfix stop
  • 重新加载postfix配置文件:/usr/sbin/postfix
  • 查看mailq和postsuper用法修复队列等:postfix check
  • postmap 检查语法错误,或使文件立即生效。
  • Postmap mail.c 文件中有语句错误,
  • Postmap virtual 是加密生效
  • Postalias /etc/alias 使邮件别名文件立刻生效

日志相关:

  • 邮件日志:tail -f /var/log/maillog
  • 系统日志:tail -f /var/log/messages
  • Clamd相关:tail -f /var/log/clamav/clamd.log  tail -f /var/log/clamav/freshclam.log
  • maildrop相关:tail -f /var/log/maildrop.log

Eg.tail -f /var/log/maillog -n 10

Postfix及Extmail日常使用相关笔记信息。