Extmail实现邮件服务器
一、extmail简介
Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail、Extman两个部分的程序套件。ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的webmail系统。
二、extmail工作原理
Extmail的工作原理图1所示:
图1 extmail工作原理图
从上图可以看出Extmail可以接受和发送来自internet网和本地的邮件,在这当中它用到了mysql来管理存放账号、dovecot检发邮件、以及Postfix,所以extmail的安装需要这些服务。
三、extmail安装
从extmail的工作原理可以看出extmail的安装应用依赖许多安装工具包,所以extmail得安装步骤如下:
1、extmail安装前准备
(1)安装所需的rpm包,这包括以下这些:httpd, php, php-mysql, 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@server1 ~]# yum 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@server1 ~]# yum groupinstall "Development Libraries"
(2)启动http服务器和mysql服务,并查看端口以及给mysql管理员设置密码。
[root@server1 ~]# service httpd start
[root@server1 ~]# chkconfig httpd on
[root@server1 ~]# netstat -tupln |grep httpd
tcp 0 0 :::80 :::* LISTEN 3093/httpd
[root@server1 ~]# service mysqld start
[root@server1 ~]# chkconfig mysqld on
[root@server1 ~]# netstat -tupln |grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3293/mysqld
[root@server1 ~]# mysqladmin -u root -p password '123'
2、安装Postfix
//卸载系统自带的Postfix
[root@server1 ~]# rpm -qa postfix
postfix-2.6.6-2.2.el6_1.i686
[root@server1 ~]# yum remove postfix
//删除原有的Postfix账号和组,以及相关的目录
[root@server1 ~]# userdel -r postfix
[root@server1 ~]# groupdel postfix
[root@server1 ~]# rm -rf /var/spool/postfix
//创建Postfix相关的账号和密码
[root@server1 ~]# groupadd -g 2525 postfix
[root@server1 ~]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
[root@server1 ~]# groupdel postdrop
[root@server1 ~]# groupadd -g 2526 postdrop
[root@server1 ~]# useradd -g postdrop -u 2526 -s /bin/false -M postdrop
//解压Postfix安装包
[root@server1 ~]# tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/
[root@server1 ~]# cd /usr/local/src/postfix-2.8.2/
//进行编译和安装
[root@server1 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'
[root@server1 postfix-2.8.2]# make && make install
//产生控制脚本
[root@server1 ~]# cp /media/cdrom/Packages/postfix-2.6.6-2.2.el6_1.i686.rpm /tmp/abc/
[root@server1 ~]# cd /tmp/abc/
[root@server1 abc]# rpm2cpio postfix-2.6.6-2.2.el6_1.i686.rpm |cpio -id
[root@server1 abc]# cd etc/
[root@server1 etc]# cd rc.d/
drwxr-xr-x. 2 root root 4096 Apr 17 12:43 init.d
[root@server1 rc.d]# cd init.d/
-rwxr-xr-x. 1 root root 3852 Apr 17 12:43 postfix
[root&#