学而实习之 不亦乐乎

Postfix 电子邮件服务器的使用

2023-11-30 20:43:30

Postfix 是一种电子邮件服务器,是为了改良 sendmail 邮件服务器而产生的。

一、Postfix 的邮件队列(mail queues)

Postfix 有四种不同的邮件队列,并且由队列管理进程统一进行管理:

  1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。
  2. incoming:放置正在到达或队列管理进程尚未发现的邮件。
  3. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。
  4. 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...