Postfix 电子邮件服务器的使用
Postfix 是一种电子邮件服务器,是为了改良 sendmail 邮件服务器而产生的。
一、Postfix 的邮件队列(mail queues)
Postfix 有四种不同的邮件队列,并且由队列管理进程统一进行管理:
- maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。
- incoming:放置正在到达或队列管理进程尚未发现的邮件。
- active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。
- deferred:放置不能被投递的邮件。
二、postfix日常维护
启动postfix:postfix start
停止postfix:postfix stop
重新读取postfix配置文件:postfix reload
立即投递队列中所有邮件(慎用):postfix flush
查看队列邮件:
# postqueue -p
# mailq
# postqueue -p |tail
使用 postsuper 来维护队列。一般是先用 mailq 查看队列里的邮件,找到对应的 id,然后用 postsuper -d 来删除。
示例
删除 id 是 0EAF3A9B 的邮件
$ postsuper -d 0EAF3A9B
删除邮件队列
$ mailq | tail +2 | awk 'BEGIN { RS = "" } / user@example\.org$/ { print $1 }' | tr -d '*!' | postsuper -d
详细要看mailq和postsuper的用法修复队列以及任何权限错误
$ postfix check
查看邮件系统日志
$ tail -f /var/log/maillog
显示信件列表
$ postqueue -p
显示信件內容
$ postcat -q Queue_ID
刪除各別信件
$ postsuper -d Queue_ID
全部刪除
$ postsuper -d ALL
扣住信件
$ postsuper -h Queue_ID
回复
$ postsuper -H Queue_ID
重新排程
$ postsuper -r Queue_ID
$ postsuper -r ALL
清除信件
$ postqueue -f (全部)
$ postqueue -s 主机名称(个别对象)
要查看Postfix的当前主要配置文件的存放路径
$ postconf -n
系统日志
$ tail -f /var/log/messages
邮件日志
$ tail -f /var/log/maillog
clamd相关
$ tail -f /var/log/clamav/clamd.log
$ tail -f /var/log/clamav/freshclam.log
maildrop相关
$ tail -f /var/log/maildrop.log
apache相关
$ tail -f /usr/local/httpd/logs/error_log
$ tail -f /usr/local/httpd/logs/suexec_log
mysql相关
$ tail -f /usr/local/mysql/data/linux.linux.com.err
测试amavisd
$ amavisd -d config debug-sa
测试spam
$ spamassassin -D --lint
测试maildrop
$ maildrop -V 10 -dtest@test.com
删除所有邮件啦linux
# postsuper -d ALL
三、常见错误
sendmail dead but subsys locked (2014-02-17 15:59:35)
有可能是已经跑了postfix了,sendmail和postfix 二者只能二选一
$ service sendmail status
sendmail dead but subsys locked
sm-client (pid 4406) is running...
查看postfix是不是已经跑了
$ service postfix status
master (pid 1527) is running...