postfix和dovecot 先安装好,这里面主要记录maildrop安装和使用时遇到的一些问题
先安装maildrop,可能会提示没有安装courier-unicode,则要先安装 courier-unicode 这里面是启用enable-dovecotauth,准备使用dovecot认证,没有使用常见的courier-auth
[root@postfix maildrop-2.8.3]# ./configure --enable-trusted-users='root postfix' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=889 --enable-maildrop-gid=889 --with-trashquota --with-dirsync --enable-dovecotauth
[root@postfix maildrop-2.8.3]# make
[root@postfix maildrop-2.8.3]# make install
[root@postfix maildrop-2.8.3]# maildrop -v
maildrop 2.8.3 Copyright 1998-2015 Double Precision, Inc.
GDBM/DB extensions enabled.
Dovecot Authentication extension enabled.
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
表示安装成功,使用Dovecot Authentication extension enabled进行认证 设置/etc/maildroprc
DEFAULT=Maildir
logfile "/var/log/maildrop.log"
测试maildrop是否正常工作
[root@postfix maildrop-2.8.3]# echo "aa" |maildrop -V 10 -t /usr/local/var/run/dovecot/auth-master -d test@bkup.wang
Invalid user specified.
[root@postfix maildrop-2.8.3]# echo "aa" |maildrop -V 10 -t /usr/local/var/run/dovecot/auth-master -d test@bkup.win
maildrop: dovecotauth: groupid=1020
maildrop: dovecotauth: userid=1020
maildrop: dovecotauth: logname=test@bkup.win, home=/home/vpopmail/domains/bkup.win/test, mail=(default)
maildrop: Changing to /home/vpopmail/domains/bkup.win/test
Message envelope sender=MAILER-DAEMON
Tokenized string: "DEFAULT"
Tokenized =
Tokenized string: "Maildir"
Tokenized ;
Tokenized logfile
Tokenized string: "/var/log/maildrop.log"
Tokenized ;
Tokenized ;
Tokenized string: "TEST"
Tokenized =
Tokenized string: "/usr/bin/test -f"
Tokenized ;
Tokenized ;
Tokenized ;
Tokenized ;
Tokenized string: "CUSTOM_FILTER"
Tokenized =
Tokenized string: "$HOME/deliver.conf"
Tokenized ;
Tokenized eof
/etc/maildroprc(1): DEFAULT="Maildir"
/etc/maildroprc(2): Opening logfile /var/log/maildrop.log
/etc/maildroprc(4): TEST="/usr/bin/test -f"
/etc/maildroprc(8): CUSTOM_FILTER="/home/vpopmail/domains/bkup.win/test/deliver.conf"
maildrop: Attempting .mailfilter
maildrop: Delivery complete.
前面一个提示Invalid user specified 表示本地没有该用户,后面则正常 -V num 错误等级 -t /usr/local/var/run/dovecot/auth-master 指定认证文件 -d test@test.com 本地用户
postfix 配置 main.cf
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
mailbox_command = maildrop
master.cf
maildrop unix - n n - - pipe
flags=DRhu user=vpopmail argv=/usr/local/bin/maildrop -V 10 -t /usr/local/var/run/dovecot/auth-master -d #${user}@${domain} ${extension} ${recipient} ${user} ${nexthop}
下面是一些常见的错误
1, maildrop: Unable to open mailbox
可能是权限不对,无法进入到邮箱home目录,或者是/etc/maildroprc 里面没有设置 DEFAULT=Maildir
2, (temporary failure. Command output: ERR: dovecotauth: s_connect() failed: Permission denied /usr/local/bin/maildrop: Temporary authentication failure.)
我这里遇到的是认证的文件 /usr/local/var/run/dovecot/auth-master 权限不对引起的 chown vpopmail.vchkpw /usr/local/var/run/dovecot/auth-master 可以在doveecot的init脚本里面设置启动和重启的时候自动加下权限