Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

分类:CentOS运维 阅读:21933 次

Mail服务器(Postfix+Dovecot+Extmail+Extman基于虚拟账号)


实验拓扑


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

LAMP(Linux+Apache+MySQL+PHP)环境搭建


首先需要搭建LAMP环境


安装Apache


[root@mail apr-1.4.6]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/


[root@mail apr-1.4.6]# cd /usr/local/src/apr-1.4.6/


[root@mail apr-1.4.6]# ./configure --prefix=/usr/local/apr


[root@mail apr-1.4.6]# make


[root@mail apr-1.4.6]# make install


[root@mail src]# cd apr-util-1.5.1/


[root@mail apr-util-1.5.1]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config


[root@mail apr-util-1.5.1]# make


[root@mail apr-util-1.5.1]# make install


[root@mail cdrom]# cd /mnt/cdrom/Server/


[root@mail Server]# rpm -ivh /mnt/cdrom/Server/pcre-devel-6.6-2.el5_1.7.i386.rpm


安装http


[root@mail ~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/


[root@mail ~]# cd /usr/local/src/httpd-2.4.4/


[root@mail httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre -with-z --enable-mpms-shared=all


[root@mail httpd-2.4.4]# make


[root@mail httpd-2.4.4]# make install


[root@mail ~]# cd /etc/init.d/


[root@mail init.d]# chmod a+x httpd


[root@mail init.d]# ln -s /usr/local/apache/include/ /usr/include/apche


[root@mail init.d]# vim /etc/man.config


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

安装mysql


[root@mail ~]# groupadd mysql


[root@mail ~]# useradd -r -g mysql mysql


[root@mail src]# cd /usr/local/


[root@mail local]# ln -s /usr/local/src/mysql-5.5.15-linux2.6-i686/ mysql


[root@mail mysql]# chown -R mysql .


[root@mail mysql]# chgrp -R mysql .


[root@mail mysql]# scripts/mysql_install_db --user=mysql


[root@mail mysql]# chown -R root .


[root@mail mysql]# chown -R mysql data


[root@mail mysql]# cp support-files/my-medium.cnf /etc/my.cnf


[root@mail mysql]# cp support-files/mysql.server /etc/init.d/mysqld


[root@mail mysql]# service mysqld start


Starting MySQL..... [ OK ]


[root@mail mysql]# chkconfig --add mysqld


配置mysql环境变量


[root@mail mysql]# vim /etc/profile


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@mail mysql]# . /etc/profile


创建mysql.conf文件并添加库文件路径


[root@mail mysql]# vim /etc/ld.so.conf.d/mysql.conf



/usr/local/mysql/lib


[root@mail mysql]# ldconfig


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

处理头文件


[root@mail mysql]# ln -s include /usr/include/mysql


给mysql数据库添加密码


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

安装php


[root@mail php-5.4.13]# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src/


[root@mail php-5.4.13]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --enable-xml --with-png-dir --with-png --with-jpeg-dir --with-zlib --enable-mbstring --with-freetype-dir



[root@mail php]# make


[root@mail php]# make install


编辑/etc/profile


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

库文件处理


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@mail php]# ldconfig


处理头文件



[root@mail php]# ln -s /usr/local/php/include/ /usr/include/php


编辑apache的配置文件支持php模块


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号


下面进行exymail的搭建


本次主要来搭建北京地区extmail


关闭开发平台的sendmail功能,因为要搭建extmail。


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

更改主机名和dns指向


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号


关闭sendmail并设为开机关闭


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号



上传搭建extmail所需要的软件包


postfix-2.8.2.tar.gz


courier-authlib-0.63.0.tar.bz2


Unix-Syslog-0.100.tar.gz


extmail-1.2.tar.gz


extman-1.1.tar.gz


打开saslauth服务设为开机启动


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

安装其他软件包


Yum install mysql-devel


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

安装postfix


[root@host ~]# tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/


[root@host ~]# cd /usr/local/src/postfix-2.8.2/


[root@host postfix-2.8.2]# group -g 2525 postfix


-bash: group: command not found


[root@host postfix-2.8.2]# groupadd -g 2525 postfix


[root@host postfix-2.8.2]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix


[root@host postfix-2.8.2]# groupadd -g 2526 postdrop


[root@host postfix-2.8.2]# useradd -g postdrop -u 2526 -s /bin/false -M postdro


Mysql的路径一定要正确


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@host postfix-2.8.2]# make && make install

install_root: [/] /


tempdir: [/usr/local/src/ postfix-2.6.5] /tmp


config_directory: [/etc/postfix]


daemon_directory: [/usr/libexec/postfix]


command_directory: [/usr/sbin]


queue_directory: [/var/spool/postfix]


sendmail_path: [/usr/sbin/sendmail]


newaliases_path: [/usr/bin/newaliases]


mailq_path: [/usr/bin/mailq]


mail_owner: [postfix]


setgid_group: [postdrop]


html_directory: [no] /var/www/postfix_html


manpages: [/usr/local/man]


readme_directory: [no]


执行/usr/bin/newaliases生成新的别名文件,提高postfix的效率


[root@host postfix-2.8.2]# /usr/bin/newaliases


2.进行一些基本配置,测试启动postfix并进行发信


#vi /etc/postfix/main.cf


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

为了管理postfix服务的启动关闭,创建脚本,复制postfix的rpm包的控制脚本


[root@host ~]# cd /tmp/


[root@host tmp]# mkdir abc


[root@host tmp]# cd abc/


[root@host abc]# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./


[root@host abc]# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

编辑postfix配置文件


[root@host init.d]# vim /etc/postfix/main.cf


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

配置邮件服务器的中继


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

发送邮件测试


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

为postfix开启基于rycus-sasl认证功能.


vim /etc/postfix/main.cf


添加认证功能


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号


四、安装Courier authentication library


[root@host ~]# tar jxvf courier-authlib-0.63.0.tar.bz2 -C /usr/local/src/


[root@host ~]# cd /usr/local/src/courier-authlib-0.63.0/


[root@mail courier-authlib-0.63.0]# ./configure \


> --prefix=/usr/local/courier-authlib \


> --sysconfdir=/etc \


> --with-authmysql \


> --with-mysql-libs=/usr/local/mysql/lib \


> --with-mysql-includes=/usr/local/mysql/include \


> --with-redhat \


> --with-authmysqlrc=/etc/authmysqlrc \


> --with-authdaemonrc=/etc/authdaemonrc \


> --with-ltdl-lib=/usr/lib \


> --with-ltdl-include=/usr/include



[root@mail courier-authlib-0.63.0]# make


[root@mail courier-authlib-0.63.0]# make install


[root@mail courier-authlib-0.63.0]# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon


[root@mail courier-authlib-0.63.0]# cp /etc/authdaemonrc.dist /etc/authdaemonrc


[root@mail courier-authlib-0.63.0]# cp /etc/authmysqlrc.dist /etc/authmysqlrc


[root@mail etc]# vim /etc/authdaemonrc


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@mail etc]# vim /etc/authmysqlrc


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@mail etc]# cd /usr/local/src/courier-authlib-0.63.0/


[root@mail courier-authlib-0.63.0]# cp courier-authlib.sysvinit /etc/init.d


# cp courier-authlib.sysvinit /etc/init.d/courier-authlib


# 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.d/courier-authlib.conf


# ldconfig -v


启动服务


[root@mail etc]# service courier-authlib start


Starting Courier authentication services: authdaemond


新建虚拟用户邮箱所在的目录,并将其权限赋予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


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

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


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


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

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


[root@mail ~]# tar -zxvf extman-1.1.tar.gz


[root@mail ~]# mv extman-1.1 /var/www/extsuite/extman


由于mysql版本的原因。导入数据库之前我们需要对extmail.sql进行更改,extmail.sql中所包含的的text的行把后面的default ‘ ’删掉,把TYPE=MyISAMCOMMENT=’ExtMail - Virtual Mailboxes‘行删除,把87行改成can_signup varchar(255).


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

[root@mail docs]# mysql -u root -p < extmail.sql


向mysql数据库导入初始化init.sql脚本


[root@mail docs]# mysql -u root -p < init.sql


导入后查看数据库验证


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

六、配置dovecot

之前已经安装过


配置dovecot


[root@mail Server]# vim /etc/dovecot.conf


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

创建dovcot和mysql连接时的配置文件


[root@mail Server]# vim /etc/dovecot-mysql.conf


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

设为开机启动


[root@mail Server]# chkconfig dovecot on



七、安装Extmail-1.2 (先安装httpd)


[root@mail ~]# mkdir -pv /var/www/extsuite


[root@mail ~]# tar -zxvf extmail-1.2.tar.gz


[root@mail ~]# mv extmail-1.2 /var/www/extsuite/extmail


cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf


编辑配置文件


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

apache相关配置


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

修改cgi 执行文件属于postfix运行身份用户


[root@mail extmail]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/


4、依赖关系的解决


[root@mail ~]# tar -zxvf Unix-Syslog-0.100.tar.gz -C /usr/local/src/


[root@mail ~]# cd /usr/local/src/Unix-Syslog-0.100/


[root@mail Unix-Syslog-0.100]# perl Makefile.PL


[root@mail Unix-Syslog-0.100]# make


[root@mail Unix-Syslog-0.100]# make install


重启httpd服务器


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

八、配置Extman-1.1


[root@mail ~]# mv extman-1.1 /var/www/extsuite/extman


[root@mail ~]# cp /var/www/extsuite/extman/webman.cf.default /var/www/extsuite/extman/webman.cf


[root@mail ~]# vim /var/www/extsuite/extman/webman.cf


12 SYS_MAILDIR_BASE = /var/mailbox


21 SYS_CAPTCHA_ON = 0


127 SYS_MYSQL_USER = webman


128 SYS_MYSQL_PASS = webman


129 SYS_MYSQL_DB = extmail


130 SYS_MYSQL_HOST = localhost


131 SYS_MYSQL_SOCKET = /tmp/mysql.sock


在apache的主配置文件中extmail的虚拟主机部分。添加一下两行


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

创建运行时所需的临时目录,并修改权限


[root@mail ~]# mkdir -pv /tmp/extman


mkdir: created directory `/tmp/extman'


[root@mail ~]# chown postfix.postfix /tmp/extman


重启一下apache服务器


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

登录测试一下默认管理帐号为:root@extmail.org 密码为:extmail*123*


http://10.1.1.100


Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号

Mail服务器Postfix+Dovecot+Extmail+Extman基于虚拟账号


本文出自 “木小浩-51CTO” 博客,请务必保留此出处http://muxiaohao.blog.51cto.com/7208070/1314581