CentOS下Extmail的搭建
1 Extmail概述
ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix、Amavisd-new、ClamAV、ExtMail、ExtMan、Courier系列软件。是一个功能相对比较齐全的免费电子邮件系统。
而其中Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail、Extman两个部分的程序套件。ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。
2 Extmail工作原理
Extmail的核心部分是postfix,是一种web页面,可以创建账号,可以收发邮件。extman可以账号注册。账号存放在mysql里面。postfix发信件,dovecot收信件。利用outlook收信件(docecot)和发信件(postfix)都要通过mysql查询。发信件(postfix)要提取mysql账号信息要通过courier-authlib。是基于虚拟帐号的邮件系统。
3 Extmail服务器搭建
3.1 安装相关软件包
[root@Qserver ~]# yum --disablerepo=\* --enablerepo=c6-media install httpd mysql mysql-server mysql-devel openssl-devel dovecot perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect
安装开发工具包
[root@Qserver ~]# yum --disablerepo=\* --enablerepo=c6-media grouplist 查看
"Development Libraries""Development Tools""Server Platform Development"
3.2 启动httpd mysqld服务
[root@Qserver ~]# service httpd start
[root@Qserver ~]# service mysqld restart
[root@Qserver ~]# chkconfig httpd on
[root@Qserver ~]# chkconfig mysqld on 设置开机启动
[root@Qserver ~]# netstat -tupln |grep httpd
[root@Qserver ~]# netstat -tupln |grep mysqld
[root@Qserver ~]# mysqladmin -u root -p password '123' 为数据库设置密码
3.3 安装Postfix
(1)删除原有postfix 新建用户
[root@Qserver ~]# rpm -qa postfix 查看已安装postfix
postfix-2.6.6-2.2.el6_1.i686
[root@Qserver ~]# yum --disablerepo=\* --enablerepo=c6-media remove postfix 卸载postfix
[root@Qserver ~]# rpm -qa postfix 删除用户和组
[root@Qserver ~]# groupdel postfix
[root@Qserver ~]# rm -rf /var/spool/postfix 删除用户目录
[root@Qserver ~]# groupadd -g 2525 postfix 创建用户组
[root@Qserver ~]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
[root@Qserver ~]# groupdel postdrop
[root@Qserver ~]# groupadd -g 2526 postdrop
[root@Qserver ~]# useradd -g postdrop -u 2526 -s /bin/false -M postdrop
查看/etc/passwd/
(2)安装postfix
[root@Qserver src]# tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/
[root@Qserver src]# cd postfix-2.8.2/
已有makefile文件,不需要./configure
[root@Qserver postfix-2.8.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'
错误 :
安装 db4-devel 和gcc
[root@Qserver postfix-2.8.2]make && make install
按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值)
install_root: [/] /
tempdir: [/usr/local/src/ postfix-2.6.5] /tmp
config_directory: [/etc/postfix] /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]
(4)postfix的启动
[root@Qserver postfix-2.8.2]# newaliases 生成别名二进制文件步骤如果忽略,会造成postfix效率低
创建临时目录,把光盘上的postfix rpm软件包拷到临时目录下,这个包里面有postfix的控制脚本
[root@Qserver cdrom]# cp /media/cdrom/Packages/postfix-2.6.6-2.2.el6_1.i686.rpm /tmp/abc/
[root@Qserver cdrom]# cd /tmp/abc/
[root@Qserver abc]# rpm2cpio postfix-2.6.6-2.2.el6_1.i686.rpm |cpio -id 拆解rpm包
[root@Qserver init.d]# cp -p postfix /etc/init.d/
[root@Qserver init.d]# service postfix start
[root@Qserver ~]# tail -f /var/log/maillog 查看日志
warning: not owned by postfix: /var/lib/postfix/./master.lock 文件无所有者
[root@Qserver ~]# chown -R postfix /var/lib/postfix/ 修改权限
[root@Qserver ~]# chkconfig --add postfix
[root@Qserver ~]# chkconfig postfix on 开机自启
(5)postfix配置
[root@Qserver ~]# vim /etc/postfix/main.cf
75 myhostname = mail.cj.com
83 mydomain = cj.com
98 myorigin = $myhostname
99 myorigin = $mydomain
113 inet_interfaces = all
161 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
260 mynetworks = 192.168.30.0/24, 127.0.0.0/8 网络为本机网络