Linux+Postfix+Extmail+Dovecot打造基于WEB页面的邮件系统(3)

四、安装Courierauthentication library

注意:确保安装libtool-ltdl,libtool-ltdl-devel不然会报错

# tar jxvf courier-authlib-0.62.4.tar.bz2

# cd courier-authlib-0.62.4

#./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc--with-authmysql --with-mysql-libs=/usr/lib/mysql--with-mysql-includes=/usr/include/mysql --with-RedHat--with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrcCFLAGS="-march=i686 -O2 -fexpensive-optimizations"   CXXFLAGS="-march=i686 -O2-fexpensive-optimizations"

# make

# make install

# chmod 755/usr/local/courier-authlib/var/spool/authdaemon

# cp /etc/authdaemonrc.dist  /etc/authdaemonrc

# cp /etc/authmysqlrc.dist  /etc/authmysqlrc

修改/etc/authdaemonrc 文件

authmodulelist="authmysql"

authmodulelistorig="authmysql"    #修改这3行

daemons=10

编辑/etc/authmysqlrc 为以下内容,其中2525,2525 为postfix 用户的UID和GID。

MYSQL_SERVER localhost      MYSQL_PORT 3306                   (指定你的mysql监听的端口,这里使用默认的3306)      MYSQL_USERNAME extmail      (这时为后文要用的数据库的所有者的用户名)      MYSQL_PASSWORD extmail        (密码)      MYSQL_SOCKET /var/lib/mysql/mysql.sock #此行前注释去掉       ------------------------------------------------      MYSQL_DATABASE extmail         #自动生成,不要修改?       ------------------------------------------------      MYSQL_USER_TABLE mailbox      MYSQL_CRYPT_PWFIELD password      MYSQL_UID_FIELD '2525'      MYSQL_GID_FIELD '2525'      MYSQL_LOGIN_FIELD username      MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)          #邮箱的位置       MYSQL_NAME_FIELD name      MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)    

# cp courier-authlib.sysvinit/etc/init.d/courier-authlib                     #courier提供的启动脚本

# chmod 755 /etc/init.d/courier-authlib

# chkconfig --add courier-authlib

# chkconfig --level 2345 courier-authlib on

#echo"/usr/local/courier-authlib/lib/courier-authlib" >>/etc/ld.so.conf  #或添加库文件/etc/ld.so.conf.d/courier.conf

[root@station71 courier-authlib-0.62.4]#  ldconfig -v | grep courier

/usr/local/courier-authlib/lib/courier-authlib:

libcourierauthcommon.so-> libcourierauthcommon.so.0

libcourierauth.so-> libcourierauth.so.0

libcourierauthsasl.so-> libcourierauthsasl.so.0

libcourierauthsaslclient.so-> libcourierauthsaslclient.so.0

#库文件成功载入

# service courier-authlib start   (启动服务)

ps aux |grep courier

#查看进程启动

新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:

#mkdir –pv /var/mailbox

#chown –R postfix/var/mailbox   #所有用户的邮件都在这里

接下来重新配置SMTP 认证,编辑 /usr/local/lib/sasl2/smtpd.conf ,确保其为以下内容:

#加入这些内容

pwcheck_method: authdaemond

log_level: 3

mech_list:PLAIN LOGIN

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket 

五、让postfix支持虚拟域和虚拟用户 

1、编辑/etc/postfix/main.cf,添加如下内容:

########################Virtual MailboxSettings########################       virtual_mailbox_base = /var/mailbox      virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf      virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf      virtual_alias_domains =      virtual_alias_maps =mysql:/etc/postfix/mysql_virtual_alias_maps.cf      virtual_uid_maps = static:2525      virtual_gid_maps = static:2525      virtual_transport = virtual      maildrop_destination_recipient_limit = 1      maildrop_destination_concurrency_limit = 1      ##########################QUOTASettings########################       message_size_limit = 14336000      virtual_mailbox_limit = 20971520      virtual_create_maildirsize = yes      virtual_mailbox_extended = yes      virtual_mailbox_limit_maps =mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf      virtual_mailbox_limit_override = yes      virtual_maildir_limit_message = Sorry, the user'smaildir has overdrawn his diskspace quota, please Tidy your mailbox and tryagain later.      virtual_overquota_bounce = yes         

2、使用extman源码目录下docs目录中的extmail.sql和init.sql建立数据库:

# tar zxvf extman-1.1.tar.gz

# cd extman-1.1/docs

# mysql -u root -p <extmail.sql   #添加extmail.sql数据库到mysql

# mysql -u root -p <init.sql

# cp mysql* /etc/postfix/

3、授予用户extmail访问extmail数据库的权限

mysql> GRANT all privileges on extmail.* TOextmail@localhost IDENTIFIED BY 'extmail';

mysql> GRANT all privileges on extmail.* TOextmail@127.0.0.1 IDENTIFIED BY 'extmail'; 

说明:启用虚拟域以后,需要取消中心域,即注释掉myhostname,mydestination, mydomain, myorigin几个指令;当然,你也可以把mydestionation的值改为你自己需要的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyygxx.html