服务器 频道

Linux下邮件系统完美解决方案架设攻略

配置Courier-Authlib

    安装Courier-Authlib

    XiaoHui 补充: authlib是数据认证库, 是maildrop, courier-imap等服务的关键部件

    运行如下命令安装相关软件包
rpm -ivh RPMS/libtool-libs-1.5.6-4.EL4.1.c4.3.i386.rpm rpm -ivh RPMS/courier-authlib-0.57-1hzq.i386.rpm rpm -ivh RPMS/courier-authlib-devel-0.57-1hzq.i386.rpm rpm -ivh RPMS/courier-authlib-mysql-0.57-1hzq.i386.rpm
    编辑/etc/authlib/authmysqlrc文件,并将其内容清空,然后增加如下内容:

    XiaoHui 补充:建议执行下列命令,先将以前的默认配置备份,然后再编译新文件:
mv /etc/authlib/authmysqlrc /etc/authlib/authmysqlrc.old vi /etc/authlib/authmysqlrc MYSQL_SERVER localhost MYSQL_USERNAME extmail MYSQL_PASSWORD extmail MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_PORT 3306 MYSQL_OPT 0 MYSQL_DATABASE extmail MYSQL_USER_TABLE mailbox MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD uidnumber MYSQL_GID_FIELD gidnumber MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD homedir MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD maildir MYSQL_QUOTA_FIELD quota MYSQL_SELECT_CLAUSE SELECT username,password,"",uidnumber,gidnumber, CONCAT('/home/domains/',homedir), CONCAT('/home/domains/',maildir), quota, name FROM mailbox WHERE username = '$(local_part)@$(domain)' 存盘退出后启动courier-authlib: /etc/init.d/courier-authlib start
    如一切正常,命令行将返回如下信息:

    Starting Courier authentication services: authdaemond

    修改authdaemon socket目录权限

    如果该目录权限不正确修改,maildrop及postfix等将无法正确获取用户的信息及密码认证:
    chmod 755 /var/spool/authdaemon/

    安装Maildrop

    注意事项:

    1.如果您需要重新编译maildrop软件包,首先必须获得其源码rpm包,其次必须先装好courier-authlib及其devel软件包,否则编译maildrop之后将无法打开authlib支持。

    2.maildrop RPM包安装时,会自动创建vuser用户及vgroup用户组,专门用于邮件的存储,vuser:vgroup的uid/gid都是1000,这与一般的邮件文档中提及用postfix用户存邮件不一样。因为postfix用户的uid一般都低于500,而Suexec模块编译时对UID/GID的要求是要大于500,因此显然用postfix用户不能满足,会导致报错。其次,如果用maildrop作为投递(MDA),以postfix身份投递的话, postfix mta也会报错的。

    安装maildrop
rpm -ivh RPMS/maildrop-2.0.1-1hzq.i386.rpm rpm -ivh RPMS/maildrop-man-2.0.1-1hzq.i386.rpm
    配置master.cf

    为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为:
maildrop unix - n n - - pipe #flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
    XiaoHui 补充:注释掉原来的 maildrop 的配置内容时,注释掉的内容应该放在最后面。因为这是一个分行的配置,不能在分行配置中插入 # 来注释。否则无法通过。原文中这种写法,我安装后无法启动。应该改成这样:
maildrop unix - n n - - pipe flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop} # flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
    配置main.cf

    由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:

    XiaoHui 补充:vi /etc/postfix/main.cf
    maildrop_destination_recipient_limit = 1

    最后重新启动postfix即可

XiaoHui 补充:执行下列命令启动 postfix:

    # 将Postfix设置为自启动:

    [root@xiaohui ~]# chkconfig postfix on

    确认Postfix服务状态:

    [root@xiaohui ~]# chkconfig --list postfix
    postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off # ← 确认2~5为on的状态就OK

    启动Postfix:

    [root@xiaohui ~]# /etc/rc.d/init.d/postfix start
0
相关文章