◆安装courier-maildrop

Maiidrop的作用是本地投递,即把收到的邮件移动到相应的用户目录。在前面配置postfix的时候,我们已经把与maildrop相关的东西写进文件/etc/postfix/master.cf了,因此这里就不再叙述。前面的步骤我们也提到过pcre 这个软件,它是安装maildrop所必须的,所以需要先安装这个软件如果系统不存在这个软件的话)。

[root@mailserv2 courier-imap-4.1.3]# cd

[root@mailserv2 courier-imap-4.1.3]# tar jxvf pcre-7.2.tar.bz2

[root@mailserv2 courier-imap-4.1.3]# cd pcre-7.2

[root@mailserv2 courier-imap-4.1.3]# ./configure

[root@mailserv2 courier-imap-4.1.3]# make

[root@mailserv2 courier-imap-4.1.3]# make install

//安装pcre应该是非常容易的事情,片刻之间就可搞定,接下来安装maildrop.在执行配置过程中,需要很多选项,不要疏漏。

[root@mailserv2 pcre-7.2]# cd

[root@mailserv2 pcre-7.2]# tar jxvf maildrop-2.0.4.tar.bz2

[root@mailserv2 pcre-7.2]# cd maildrop-2.0.4

[root@mailserv2 maildrop-2.0.4]# ./configure  --prefix=/usr/local/maildrop  --enable-

sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail'  --enable-syslog=1 

--enable-maildirquota  --enable-maildrop-uid=1001  --enable-maildrop-gid=1001  --with

-trashquota --with-dirsync

[root@mailserv2 maildrop-2.0.4]# make

[root@mailserv2 maildrop-2.0.4]# make install

[root@mailserv2 maildrop-2.0.4]# cp /usr/local/maildrop/bin/maildrop /usr/bin

下面的命令简单验证maildrop

[root@mailserv2 ~]# maildrop –v

maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.

GDBM extensions enabled.

Courier Authentication Library extension enabled.

Maildir quota extension enabled.

This program is distributed under the terms of the GNU General Public

License. See COPYING for additional information.

输出内容一定要有"Courier Authentication Library extension enabled"这一行。如果没有这个输出,那是非常不幸的事情了,返回去挨个排错吧。那么这个"Courier Authentication Library extension enabled"是怎么一回事呢?这表明maildrop已经和前面我们安装配置的SASL和courier-authlib紧密结合在一起了。

知道maildrop把邮件移动到哪个用户目录还是非常有必要的,这个操作就是maildrop的日志记录。这里我们创建一个新文件/etc/maildroprc,这个文件就2行内容:

[root@mailserv2 mailbox]# more /etc/maildroprc

logfile "/var/mailbox/maildrop.log" 

to "$HOME/$DEFAULT"

我们来看一个正常运行的postfix邮件系统的maildrop日志,就会对maildrop有更清楚的认识。

[root@mailserv2 mailbox]# tail  maildrop.log

Date: Sat Oct  6 12:45:20 2007

From: "Saundra Y. Echols"

Subj: No girls laugh at me now, haha, i laugh at them

File: /mail/mailbox//sery.com/magazine/                              (3355)

上面的日志表明收到一封来自Saundra@ms13.hinet.net的信,maildrop把邮件移动到目录/mail/mailbox/sery.com/magazine。

很可惜maidrop没有创建和删除邮件用户目录的能力,在配置postfixadmin时,我们提到需要使用2个shell脚本/usr/sbin/maildirdel.sh及/usr/sbin/maildirmake.sh,这2个脚本的作用就是用来弥补maildrop不能创建/删除目录这个缺陷的。

[root@mailserv2 ~]# more /usr/sbin/maildirmake.sh

#!/bin/bash

set -e

if [ ! -d /var/mailbox/$1 ]

then

mkdir /var/mailbox/$1

fi 

chown -R vmail:vmail /var/mailbox/$1

cd "/var/mailbox/$1"

/usr/local/imap/bin/maildirmake $2

mkdir /var/mailbox/$1/$2/Maildir

chown -R vmail:vmail /var/mailbox/$1/$2

 

[root@mailserv2 ~]# more /usr/sbin/maildirdel.sh

#!/bin/bash

rm -rf /mail/mailbox/$1/$2

这2个脚本由web调用,而webapache)的执行用户为vmail,出于安全考虑,我们给vmail用户的权限非常有限,为了保证这2个shell脚本能正常执行,需要使用sudo这个工具来完成这个任务。尽管可以使用vi这样的编辑器来修改/etc/sudoers这个配置文件,但还是不及visudo可靠,因为visudo可以对修改的内容做语法检查,如果更改不正确,保存文件是会给出提示。把行"vmail ALL = NOPASSWD: /usr/sbin/maildirmake.sh , /usr/sbin/maildirdel.sh"追加到文件末尾即可!

有的时候,在postfixadmin里创建新的邮件帐号,帐号倒是创建成功了,却并没有在指定的位置生成相应的虚拟用户目录,从网上收集的信息来看,这个问题似乎很普遍,我本人也被这个问题困扰过--以vmail 用户手动执行sudo /usr/sbin/maildirdel.sh就能创建目录,用web方式就是不行-实验多次才找出原因,原来是/etc/sudoers里需要把"Defaults    requiretty"这行注释掉。有人可能要问,你怎么知道要这样做呢?答:我是通过看apache日志知道要这样干的。


相关内容