1、制作YUM源 编译CentOS-Base.repo文件:
1 vi /etc/yum.repos.d/CentOS-Base.repo
加入如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # EMOS-Base.repo # # Created by ExtMail Dev Team: http://www.extmail.org/ # # $Id$ [EMOS-base] name=EMOS-Base baseurl=http://mirror.extmail.org/yum/emos/1.5/os/$basearch/ gpgcheck=0 priority=0 protect=0 [EMOS-update] name=EMOS-Updates baseurl=http://mirror.extmail.org/yum/emos/1.5/updates/$basearch/ gpgcheck=0 priority=0 protect=0
保存后,然后尝试执行一下yum list 等操作,看看是否已经成功. 2、配置mta-postfix 安装postfix:
1 2 yum -y install postfix yum remove sendmail
配置postfix:
1 2 3 postconf -n > /etc/postfix/main2.cf mv /etc/postfix/main.cf /etc/postfix/main.cf.old mv /etc/postfix/main2.cf /etc/postfix/main.cf
编辑main.cf:
增加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # hostname mynetworks = 127.0.0.1 myhostname = mail.centos.bz mydestination = $mynetworks $myhostname # banner mail_name = Postfix - by extmail.org smtpd_banner = $myhostname ESMTP $mail_name # response immediately smtpd_error_sleep_time = 0s # Message and return coolcode control message_size_limit = 5242880 mailbox_size_limit = 5242880 show_user_unknown_table_name = no # Queue lifetime control bounce_queue_lifetime = 1d maximal_queue_lifetime = 1d
注:myhostname改为自己的. 设置postfix开机自启:
3、配置courier-authlib 安装Courier-Authlib:
1 2 yum -y install courier-authlib yum -y install courier-authlib-mysql
删除并编辑 /etc/authlib/authmysqlrc文件:
1 2 cat /dev/null >/etc/authlib/authmysqlrc vi /etc/authlib/authmysqlrc
增加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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)'
修改authdaemonrc文件:
1 vi /etc/authlib/authdaemonrc
修改如下内容:
1 2 authmodulelist="authmysql" authmodulelistorig="authmysql"
或者使用如下命令直接修改:
1 2 sed -i 's/authmodulelist=.*/authmodulelist="authmysql"/g' /etc/authlib/authdaemonrc sed -i 's/authmodulelistorig=.*/authmodulelistorig="authmysql"/g' /etc/authlib/authdaemonrc
启动courier-authlib:
1 service courier-authlib start
修改authdaemon socket目录权限:
1 chmod 755 /var/spool/authdaemon/
4、配置maildrop 安装maildrop:
配置master.cf 为了使Postfix支持Maildrop,必须修改/etc/postfix/master.cf文件,注释掉原来的maildrop的配置内容,并改为:
1 2 maildrop unix - n n - - pipe flags=DRhu user=vuser argv=maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}
注意:flags前面有”两个空格”. 配置main.cf 由于maildrop不支持一次接收多个收件人,因此必须在main.cf里增加如下参数:
1 2 vi /etc/postfix/main.cf maildrop_destination_recipient_limit = 1
测试maildrop对authlib支持:
看是否出现以下内容:
1 2 3 4 5 6 maildrop 2.1.0 Copyright 1998-2005 Double Precision, Inc. GDBM/DB extensions enabled. Courier Authentication Library extension enabled. Maildir quota extension enabled. This program is distributed under the terms of the GNU General Public License. See COPYING for additional information.
5、配置apache 安装httpd:
虚拟主机设置:
1 vi /etc/httpd/conf/httpd.conf
在最后一行加上:
1 2 NameVirtualHost *:80 Include conf/vhost_*.conf
编辑 vhost_extmail.conf:
1 vi /etc/httpd/conf/vhost_extmail.conf
里面定义虚拟主机的相关内容:
1 2 3 4 5 6 7 8 9 10 # VirtualHost for ExtMail Solution ServerName mail.centos.bz DocumentRoot /var/www/extsuite/extmail/html/ ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/ Alias /extmail /var/www/extsuite/extmail/html/ ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/ Alias /extman /var/www/extsuite/extman/html/ # Suexec config SuexecUserGroup vuser vgroup
注意:把ServerName修改成自己的. 设置apache开机启动并重启apache.
1 2 chkconfig httpd on service httpd restart
6、配置webmail-extmail 安装ExtMail:
1 yum -y install extsuite-webmail
编辑webmail.cf:
1 2 3 cd /var/www/extsuite/extmail cp webmail.cf.default webmail.cf vi webmail.cf
主要变动的内容见下:
1 2 3 SYS_MYSQL_USER = extmail SYS_MYSQL_PASS = extmail SYS_MYSQL_DB = extmail
更新cgi目录权限 由于SuEXEC的需要,必须将extmail的cgi目录修改成vuser:vgroup权限:
1 chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
7、配置管理后台-extman yum安装ExtMan:
1 yum -y install extsuite-webman
更新cgi目录权限 由于SuEXEC的需要,必须将extman的cgi目录修改成vuser:vgroup权限:
1 chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
链接基本库到Extmail:
1 2 mkdir /tmp/extman chown -R vuser:vgroup /tmp/extman
注意事项: 由于RedHat发行版中包含了一个叫tmpwatch的工具,该工具会定期扫描/tmp/下的文件,如果这些文件很久都没被使用,将被删除,因此如果后台长期不使用,/tmp/extman目录有可能被tmpwatch删除,所以要么定期登陆后台,要么修改 webman.cf将临时目录修改到另一个地方.此处暂以/tmp/extman默认值为例. 安装mysql数据库:
1 yum -y install mysql mysql-server
数据库初始化: 启动Mysql:
1 2 service mysqld start chkconfig mysqld on
导入mysql数据库结构及初始化数据,root密码默认为空.
1 2 mysql -u root -p > /etc/rc.d/rc.local echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local
使用方法: 等待大约15分钟左右,如果邮件系统有一定的流量,即可登陆到extman里,点”图形日志”即可看到图形化的日志.具体每天,周,月,年的则点击相应的图片进入即可. 8、配置cyrus-sasl 安装cyrus-sasl: 删除系统的cyrus-sasl:
1 rpm -e cyrus-sasl --nodeps
安装新的支持authdaemon的软件包:
1 yum -y install cyrus-sasl cyrus-sasl-plain
配置main.cf文件: Postfix的SMTP认证需要透过Cyrus-SASL,连接到authdaemon获取认证信息. 编辑main.cf:
增加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # smtpd related config smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, # SMTP sender login matching config smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, reject_authenticated_sender_login_mismatch, reject_unauthenticated_sender_login_mismatch smtpd_sender_login_maps = mysql:/etc/postfix/mysql_virtual_sender_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_maps.cf # SMTP AUTH config here broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous
编辑smtpd.conf文件:
1 vi /usr/lib/sasl2/smtpd.conf
确保其内容为:
1 2 3 4 pwcheck_method: authdaemond log_level: 3 mech_list: PLAIN LOGIN authdaemond_path:/var/spool/authdaemon/socket
重新启动postfix:
测试SMTP认证: 通过以下命令获得postmaster@extmail.org 的用户名及密码的BASE64编码:
1 perl -e 'use MIME::Base64; print encode_base64("postmaster@extmail.org")'
内容如下:
1 2 cG9zdG1hc3RlckBleHRtYWlsLm9yZw== perl -e 'use MIME::Base64; print encode_base64("extmail")'
内容如下:
然后本机测试:
其过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Trying 127.0.0.1… Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 mail.extmail.org ESMTP Postfix – by extmail.org ehlo demo.domain.tld << 输入内容 250-mail.extmail.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUScoolcodeS 250-8BITMIME 250 DSN auth login << 输入内容 334 VXNlcm5hbWU6 cG9zdG1hc3RlckBleHRtYWlsLm9yZw== << 输入内容 334 UGFzc3dvcmQ6 ZXh0bWFpbA== << 输入内容 235 2.0.0 Authentication successful quit << 输入内容 221 2.0.0 Bye
最后出现235 Authentication Successful 表明认证成功了. 9、配置courier-imap 安装Courier-imap: 默认的courier-authlib及courier-imap都会增加系统自启动设置,因此下一次服务器启动将自动启动相应的authlib及POP3服务.
1 yum -y install courier-imap
10、配置courier-imap 由于Courier-imap的IMAP目录是按UTF-7编码的,ExtMail目前还没有正式支持IMAP目录,因此需要屏蔽IMAP,只提供 pop3服务.而就目前的使用情况来看,IMAP使用的非常少,绝大部分OutLook/Foxmail用户都习惯使用POP3而非IMAP. 编辑文件:
1 vi /usr/lib/courier-imap/etc/imapd
修改内容如下:
编辑文件:
1 vi /usr/lib/courier-imap/etc/imapd-ssl
修改内容如下:
然后重新启动courier-imap:
1 service courier-imap start
测试POP3 请按如下步骤输入pop3命令测试其是否正常工作,注意蓝色的信息是我们输入到POP3服务器的(请首先登录extman自行建立test@extmail.org 用户,密码:extmail).
其过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Trying 127.0.0.1… Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. +OK Hello there. user test@extmail.org << 输入内容 +OK Password required. pass extmail << 输入内容 +OK logged in. list << 输入内容 +OK POP3 clients that break here, they violate STD53. . quit << 输入内容 +OK Bye-bye. Connection closed by foreign host.
11、最后说明 至此,ExtMail的安装配置基本完成,如想配置内容,病毒过滤请到官方网站学习配置.登录extmail系统后台后,请及时修改密码或者用户名.最后需要确认的是,是否已经设置好邮件域名的MX记录或者A记录,这样才能正常收取邮件. 域名解析实例:
1 2 3 4 主机名 网络 优先级 对应MAIL主机名 空 默认 6 mail.dovao.com <---mail解析 主机名 网络 IP地址 mail 默认 173.44.135.19 <---A记录解析