postfix有四种不同的邮件队列,并且由队列管理进程统一进行管理:
1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。
2. incoming:放置正在到达或队列管理进程尚未发现的邮件。
3. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。
4. deferred:放置不能被投递的邮件。
常用日常维护指令:
1.启动postfix postfix start
2.停止postfix postfix stop
3.重新读取postfix(配置文件配置文件有改动后) postfix reload
4.立即投递队列中所有邮件(慎用) postfix flush
5.查看队列邮件
postqueue -p
mailq
postqueue -p |tail
6.使用postsuper 来维护队列。
一般是先用mailq查看队列里的邮件,找到对应的id,然后用postsuper -d来删除。
例如id是0EAF3A9B 那么postsuper -d 0EAF3A9B
7.删除邮件队列(详细要看mailq和postsuper的用法)
postqueue -p 查看队列内容
postcat 查看队列里邮件内容
postsuper -d ALL (hold/deffered...) 删除某个队列里所有邮件
8.删带有某特征的
在《Postfix 权威指南》里有一个叫 pfdel 的 Perl 小程序,可以用它删除指定邮件地址的邮件(不管是发信人还是收信人的邮件地址),这个虽然方便,但是如果想要清除因为 maildir over quota 或者 Invalid user specified 错误而产生的邮件,还需要修改一下。下面是这四个程序:
pfdel.pl
luserdel.pl
moqdel.pl
jmoqdel.pl
其中,pfdel.pl 是用来删除队列中指定用户的邮件的,luserdel.pl 是用来删除队列中无效用户的邮件的,moqdel.pl 是用来删除队列中邮箱配额已满的用户的邮件的,jmoqdel.pl 是删除邮箱配额已满的用户的垃圾邮件箱的。
postfix_tools打包下载地址 : postfix_tools
9.修复队列以及任何权限错误 postfix check
10.查看邮件系统日志 tail -f /var/log/maillog (-f 参数用于实时显示,便于查看)
-----------------
# statistic recipient
echo "Part one : - Top 10 Recipient domain "
fgrep to= /var/log/maillog | cut -d/< -f2 | cut -d/> -f1 | cut -d@ -f2 | sort | uniq -c | sort -nr |head
# statistic sender
echo "Part two: - Top 10 Sender domain "
fgrep from= /var/log/maillog | cut -d/< -f2 | cut -d/> -f1 | cut -d@ -f2 | sort | uniq -c | sort -nr | head
# statistic destination mail total count
echo "Part three: Total lines and sizes of log, And total mail sent"
cat /var/log/maillog | fgrep status=sent | wc -l | awk '{ print $1 }'
echo ""; echo "Scanning maillog for rejections:"
cat -fc /var/log/maillog | egrep reject: | cut -d : -f 5- | sort | uniq -c | sort -nr | grep -v '^ *[1-2] *[^ ]* [^ ]* from [^ ]*: 450 '
echo "Scanning maillog for warnings:"
cat /var/log/maillog | egrep warning: | cut -d : -f 5- | sort | uniq -c
echo "Scanning maillog for trouble:"
cat /var/log/maillog | egrep '(fatal|panic):'
检查hash文件结果的命令
postmap -q [email protected] hash:permited_sender
postmap -q "[email protected] " mysql:/usr/local/etc/postfix/mysql-sender.cf