本文档是基于centos5.6来实现postfix邮件服务器的架构,下面列出所需相关软件包。
httpd-2.2.9.tar.gz 安装源码包apache
mysql-5.0.56.tar.gz 安装源码包mysql
php-5.2.6.tar.bz2 安装php软件
postfix-2.4.6.tar.gz postfix主程序
postfix-2.4.6-vda-ng.patch.gz postfix的补丁包
dovecot-1.1.4.tar.gz IMAP和POP3邮件服务器软件
squirrelmail-1.4.13.tar.bz2 web界面邮件管理
zh_CN-1.4.13-20071220.tar.bz2 汉化包
extman-0.2.5.tar.gz 邮件后台管理程序
extmail-1.0.5.tar.gz web界面邮件管理
courier-authlib-0.60.2.tar.bz2 SMTP发信认证
Unix-Syslog-1.1.tar.gz
DBI-1.607.tar.gz
DBD-mysql-4.011.tar.gz 以上三个包为extmail的倚赖包
GD-2.41.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23-3.el5.i386.rpm
rrdtool-perl-1.2.23-3.el5.i386.rpm 以上四个包为extman的倚赖包
下面开始进行postfix邮件服务器的搭建:
以上软件包分别上传到服务器的“/”下面的 “/azb”和“/gjanb”这两个目录中
删除 RPM包举例:sendmail
# yum remove sendmail -y
防火墙配置
# service iptables stop
#vim /etc/sysconfig/iptables
清楚原有配置,并添加以下内容
# Generated byiptables-save v1.3.5 on Sun Oct 911:23:39 2011
*filter
:INPUT DROP[45878:2859393]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3335:228744]
-A INPUT -p tcp -mtcp --sport 80 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 143 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 80 -j ACCEPT
-A INPUT -p udp -mudp --sport 53 -j ACCEPT
-A INPUT -p udp -mudp --dport 161 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 21 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 5666 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 20 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 110 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 25 -j ACCEPT
-A INPUT -p tcp -mtcp --sport 25 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 22 -j ACCEPT
-A INPUT -p tcp -mtcp --dport 3306 -j ACCEPT
-A INPUT -i lo -jACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on SunOct 9 11:23:39 2011
# service iptables start
查看当前防火墙策略
# iptables -L -n
首先卸载系统自带的httpd-2.2.3-31.el5.cento
# yum remove httpd -y
2.1安装apache软件:
下面我们将把所有需要的安装包解压到/usr/local/src/下面以方便我们统一管理维护
#tarzxvf httpd-2.2.9.tar.gz -C /usr/local/src
#cd/usr/local/src/httpd-2.2.9
#./configure--prefix=/usr/local/apache2 --enable-so --enable-rewrite
#make&& make install
这里我们并没有将Suexec编译进apache中去,提到这个的原因是因为后面我们装postfix时候的后台管理extman是通过CGI的方式来调用程序的,如果不启用Suexec的话那么就会限制其他用户调用CGI程序,但考虑到启用Suexec的风险我们在此就不启用它了。(启用方式:--enable-suexec -with-suexec-caller=daemon -with-suexec-docroot=/usr/local/apache2/htdocs)
2.2安装mysql软件:
#useradd-M -s /sbin/nologin mysql 添加mysql用户,如果安装系统时候已经装过mysql会提示用户已存在,建议在安装前先卸载掉系统自带的mysql,卸载完成后必须重启,否则新装的mysql会无法启动,提示错误信息3306端口被占有
#tarzxvf mysql-5.0.56.tar.gz -C /usr/local/src
#cd /usr/local/src/mysql-5.0.56
#./configure--prefix=/usr/local/mysql
#make&& make install
安装完成。
配置mysql
#cd /usr/local/src/mysql-5.0.56
#cp support-files/my-medium.cnf/etc/my.cnf 复制主配置文件
#/usr/local/mysql/bin/mysql_install_db--user=mysql 初始化
#chown-R root:mysql /usr/local/mysql
#chown-R mysql /usr/local/mysql/var
#echo"/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf 添加库文件路径
#ldconfig刷新库文件搜索路径
#/usr/local/mysql/bin/mysqld_safe--user=mysql & 后台安全启动 (如果显示启动并且卡住不动按回车)
#cd /usr/local/src/mysql-5.0.56
#cp support-files/mysql.server/etc/init.d/mysqld 复制启动脚本
#chmod+x /etc/init.d/mysqld 赋予脚本执行权限
#chkconfig--add mysqld 添加到系统自动启动服务中
#chkconfigmysqld on 默认启动mysql
#chkconfig--list mysqld 查看mysql在什么级别启动或者关闭
#echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#source /etc/profile
设置系统全局的环境变量PATH值,方便使用mysql数据库命令
测试Mysql
#/usr/local/mysql/bin/mysqladmin ping
#/usr/local/mysql/bin/mysqladmin version
#/usr/local/mysql/bin/mysql
#tarjxvf php-5.2.6.tar.bz2 -C /usr/local/src
#cd /usr/local/src/php-5.2.6
#./configure--prefix=/usr/local/php5 --enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5
#make
#maketest
#makeinstall
#cd /usr/local/src/php-5.2.6
#cp php.ini-dist/usr/local/php5/php.ini 复制配置文件
#vim/usr/local/apache2/conf/httpd.conf 修改apache服务的主配置文件使其支持php
LoadModulephp5_module modules/libphp5.so 确认这行的存在,如果没有就重新编译php
AddTypeapplication/x-httpd-php .php 添加这行记录
DirectoryIndexindex.php index.html 在这行添加关于php格式的首页
#ServerNamewww.example.com:80去掉注释,更改为
ServerNamelocalhost:80
然后保存退出
# /usr/local/apache2/bin/apachectl -t 检查配置文件语法错误
# /usr/local/apache2/bin/apachectl -k start 启动apachel
#vim/usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
在浏览器中输入http://192.168.0.202/test.php 看到下图表示跟apache服务整合成功
Mysql测试
#vim/usr/local/apache2/htdocs/testdb.php
<?php
$link=mysql_connect('localhost','test','');
if(!$link) echo"Fail!!!";
else echo"Success!!";
mysql_close();
?>
在IE浏览器中输入网址http://192.168.0.202/testdb.php看到下图表示跟mysql服务整合成功
#servicesendmail stop
#chkconfig--level 35 sendmail off
#groupadd-g 1200 postdrop
#groupadd-g 1000 postfix
#useradd-M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
不创建宿主目录附属组
#tarzxvf postfix-2.4.6.tar.gz -C /usr/local/src
# cppostfix-2.4.6-vda-ng.patch.gz /usr/local/src/ 补丁文件,用以支持虚拟用户设置配额
#cd /usr/local/src
#gunzip postfix-2.4.6-vda-ng.patch.gz
#cd postfix-2.4.6
#patch -p1 <../postfix-2.4.6-vda-ng.patch 打补丁(注意此处-p1,后面是数字1而不是字母l)
以上显示表示补丁已经打上。
#makemakefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH-DUSE_CYRUS_SASL -I/usr/include/sasl''AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2'
#make
#makeinstall
安装过程中会出现互动提问,直接选择默认设置即可。
安装完毕。
检查postfix
支持的SASL验证类型,参数-a查询服务器端类型,用来验证登录用户,-A查询客户端类型,Postfix用来和别的服务器通讯。
#postconf -a
显示:dovecotcyrus
说明现在已经支持dovecot和cyrus认证了
查看是否支持mysql
# postconf -m
显示内容如果有mysql说明支持mysql
#postfixcheck 检查配置
#postconf-n 查看配置
#vim/etc/postfix/main.cf
inet_interfaces= all默认设置
myhostname= mail.abc.com 主机名
mydomain= abc.com 邮件域名
myorigin= $mydomain 外发邮件时发件人地址中的邮件域名
mydestination= $mydomain, $myhostname 可接收的邮件地址中的域名
home_mailbox= Maildir/ 邮件存储位置格式
快捷方式,直接添加以下内容:
inet_interfaces = all
myhostname = mail.abc.com
mydomain = abc.com
myorigin = $mydomain
mydestination = $mydomain, $myhostname
home_mailbox = Maildir/
删除 sendmail
# yum remove sendmail -y
增加smtp认证包
#yum install cyrus-sasl-plain -y
#postfixstart 启动
邮件本地账户管理
#groupaddmailusers
#useradd-g mailusers -s /sbin/nologin chenglu
#useradd-g mailusers -s /sbin/nologin test
#passwdchenglu
#passwdtest
SMTP发送邮件测试
#telnetlocalhost 25 连接本地的SMPT端口
Tring127.0.0.1..
Connectedto localhost.localdomain (127.0.0.1).
Escapecharacter is ‘^]’.
220mail.wisefund.com ESMTP Postfix
ehlolocalhost 宣告客户端主机地址
250mail.wisefund.com
MAILFROM:[email protected] 发信人地址
2502.1.0 ok
RCPTTO: [email protected] 收信人地址
2502.1.5 ok
DATA 标记开始写信
354End data with <CR><LF>.<CR><LF>
Subject:just a test letter 信件题目
Hello!
Thisis a test mail.
. “点”表示信件结束
2502.0.0. ok:queued as 2F9AD787DA
quit 退出
2212.0.0 Bye
Connectionclosed by foreign host.
查看接收到的邮件
#cat/home/test/Maildir/new/ 按tab键
可以看见刚才发的那封邮件,说明SMPT没有问题。
#useradd-M -s /sbin/nologin dovecot
#tarzxvf dovecot-1.1.4.tar.gz -C /usr/local/src
#cd /usr/local/src/dovecot-1.1.4
#./configure--sysconfdir=/etc --with-mysql
#make
#makeinstall
#cp /etc/dovecot-example.conf/etc/dovecot.conf 复制主配置文件
#vim/etc/dovecot.conf
ssl_disable= yes 禁用SSL机制
protocols= pop3 imap 指定邮局协议
disable_plaintext_auth= no 允许明文密码认证
mail_location= maildir:~/Maildir 设置邮件存储格式和位置
快捷方式,直接添加以下内容:
ssl_disable = yes
protocols = pop3 imap
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
#vim/etc/pam.d/dovecot 创建pam认证文件
authrequired pam_nologin.so
authinclude system-auth
accountinclude system-auth
sessioninclude system-auth
#/usr/local/sbin/dovecot-c /etc/dovecot.conf 启动
#telnetlocalhost 110
Trying127.0.0.1...
Connectedto localhost.localdomain (127.0.0.1).
Escapecharacter is '^]'.
+OKDovecot ready.
usertest 输入用户名
+OK
pass123456 输入密码
+OK Loggedin.
list 列出邮件列表
+OK1 messages;
1480
.
retr1 查看第一封邮件
+OK 480octets
下面显示邮件内容,测试完成
#tarjxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs/
#mv squirrelmail-1.4.13webmail
#tar jxvf zh_CN-1.4.13-20071220.tar.bz2 -C /usr/local/apache2/htdocs/webmail 解压汉化软件
#cd /usr/local/apache2/htdocs/webmail
#mkdir-p attach data
#chown-R daemon:daemon attach/ data/
#chmod730 attach/
#cp config/config_default.phpconfig/config.php 创建配置文件
#vimconfig/config.php
$squirrelmail_default_language= ‘zh_CN’;
$default_charset= ‘zh_CN.UTF-8’;
$domain= ‘abc.com’;
$smtpServerAddress= ‘localhost’; 设置发信服务器地址
$smtpPort= 25; 设置发信服务器端口
$imap_server_type= 'dovecot'; 设置收信服务器软件
$imapPort= 143; 设置收信服务器端口
$data_dir= '/usr/local/apache2/htdocs/webmail/data/';
$attachment_dir= '/usr/local/apache2/htdocs/webmail/attach/';
#/usr/local/apache2/bin/apachectlrestart 重启apache 服务
客户端IE地址栏中输入 http://mail.wisefund.com/webmail (前提mail.wisefund.com可以被解析,否则用ip)
即可看见下图:
到此我们的postfix+webmail已经安装完成,但是为了使我们更好的管理维护邮件服务器的前端与后台接下来我们来安装extmail和extman以便实现我们的需求。
#servicemysqld restart
#tarzxvf extman-0.2.5.tar.gz -C /usr/local/src
#cd /usr/local/src/extman-0.2.5/docs
#mysql-u root -p < extmail.sql
#mysql-u root -p <init.sql 脚本导入数据库的时候会询问密码,默认情况下root用户密码为空
#postconf-m |grep mysql 返回值有mysql,说明可以支持mysql 数据库的查询表
#vim/etc/postfix/main.cf
#mydestination = $mydomain, $myhostname 该行需要注释掉
virtual_mailbox_base= /mailbox 指定虚拟邮箱存储目录的路径起点
virtual_alias_maps= mysql:/etc/postfix/mysql_virtual_alias_maps.cf
指定虚拟邮件用户对应的别名文件位置
virtual_mailbox_maps= mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
指定记录虚拟邮箱地址与存储位置对应关系的映射文件位置
virtual_mailbox_domains= mysql:/etc/postfix/mysql_virtual_domains_maps.cf
设置postfix服务器可以接收的虚拟邮件域的域名
virtual_uid_maps= static:1000 设置所有虚拟邮件用户映射的本地用户的UID号
virtual_gid_maps= static:1000 设置所有虚拟邮件用户映射的本地组的GID 号
快捷方式,直接添加以下内容:
virtual_mailbox_base = /mailbox
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
#cd /usr/local/src/extman-0.2.5/docs
#cp mysql_virtual_*/etc/postfix/ 在上面的三行配置中指定了这三个文件
注意:确认系统中的rpm格式的mysql 软件被卸载
#tarjxvf courier-authlib-0.60.2.tar.bz2 -C /usr/local/src
# cd/usr/local/src/courier-authlib-0.60.2/
#./configure--prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-redhat-with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
#make
#makeinstall
#makeinstall-configure 生成默认配置文件authmysqlrc 和 authdaemonrc
#vim/etc/ld.so.conf
/usr/local/courier-authlib/lib/courier-authlib
#ldconfig
#cd /usr/local/courier-authlib/etc/authlib
#cp authdaemonrcauthdaemonrc.bak
#vimauthdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
#chmod-R 755 /usr/local/courier-authlib/var/spool/authdaemon
#cd /usr/local/courier-authlib/etc/authlib
#cp authmysqlrcauthmysqlrc.bak
#vimauthmysqlrc
MYSQL_SERVER localhost 数据库服务器位置
MYSQL_USERNAME extmail 数据库管理员账户
MYSQL_PASSWORD extmail 数据库管理员账户密码
MYSQL_SOCKET /tmp/mysql.sock文件位置
MYSQL_DATABASE extmail 虚拟用户数据库
MYSQL_USER_TABLE mailbox 从mailbox表获得邮件账户信息
MYSQL_CRYPT_PWFIELD password 从password字段获得账户密码
MYSQL_UID_FIELD uidnumber 从uidnumber字段获得映射的本地用户UID
MYSQL_GID_FIELD gidnumber 从gidnumber字段获得映射的本地组GID
MYSQL_LOGIN_FIELD username 从username字段获得账户名称,带@后缀
MYSQL_HOME_FIELD concat('/mailbox/',homedir)合并出用户的宿主目录路径
MYSQL_NAME_FIELD name 从name 字段获得账户名称,不带@后缀
MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir)合并出用户的邮件存储路径
#cd /usr/local/src/courier-authlib-0.60.2/
#cp courier-authlib.sysvinit/etc/init.d/courier-authlib
#chmod755 /etc/rc.d/init.d/courier-authlib
#chkconfig--level 35 courier-authlib on
#servicecourier-authlib start
#vim/usr/lib/sasl2/smtpd.conf 编辑smtpd认证配置文件,该文件默认不存在
pwcheck_method:authdaemond
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
#vim/etc/dovecot.conf
mail_location= maildir:~/Maildir 注释掉,更换成下面配置
mail_location= maildir:/mailbox/%d/%n/Maildir
…………………………………………………………………….省略号表示文件中原有的内容
authdefault {
mechanisms = plain
passdbsql {
|
}
userdbsql {
args = /etc/dovecot-mysql.conf
}
……………………………………………………………………...省略号表示文件中原有内容
#vim/etc/dovecot-mysql.conf
driver= mysql
connect= host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme= CRYPT 数据库中存储的密码串的加密算法
password_query= SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'查询用户密码的语句
user_query= SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username= '%u' 查询用户身份语句
#mkdir-p /mailbox/extmail.org/postmaster/Maldir
# cd/mailbox/extmail.org/postmaster/Maldir
#chown-R postfix:postfix /mailbox
#dovecot启动服务
确认authlib服务
#/usr/local/courier-authlib/sbin/authtest -s login [email protected] extmail
Authenticationsucceeded. 成功提示信息
Authenticated: [email protected] (uid1000, gid 1000)
Home Directory:/mailbox/extmail.org/postmaster
Maildir:/mailbox/extmail.org/postmaster/Maildir/
Quota: (none)
EncryptedPassword: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
CleartextPassword: extmail
Options: (none)
基于Perl 语言开发的中文Webmail管理平台
套件:ExtMail --Web 界面的邮件操作
Extman -Web 界面的邮件系统管理
3个倚赖包
#tar-zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src
#cd /usr/local/src/Unix-Syslog-1.1
#perlMakefile.PL
#make
#makeinstall
#tar-zxvf DBI-1.607.tar.gz -C /usr/local/src
#cd /usr/local/src/DBI-1.607
#perlMakefile.PL
#make
#maketest
#makeinstall
#tar-zxvf DBD-mysql-4.011.tar.gz -C /usr/local/src
#cd /usr/loca/src/DBD-4.011
#perlMakefile.PL
#make
#makeinstall
注意以上三个包在编译安装过程可能会提示警告信息 隐式函数 计算出的变量值未被使用等,只要没有error信息就一切ok
安装ExtMail
#tar-zxvf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs
#mv extmail-1.0.5extmail
#cd extmail
#chown-R postfix:postfix cgi
#cp webmail.cf.defaultwebmail.cf
#cd /usr/local/apache2/htdocs/extmail
#vimwebmail.cf
SYS_CONFIG= /usr/local/apache2/htdocs/extmail/ 程序根目录
SYS_LANGDIR= /usr/local/apache2/htdocs/extmail/lang 语言包文件目录
SYS_TEMPLDIR= /usr/local/apache2/htdocs/extmail/html 系统模版目录
SYS_MAILDIR_BASE= /mailbox 邮件存储目录
SYS_MYSQL_USER= extmail 访问mysql数据库的用户
SYS_MYSQL_PASS= extmail 访问mysql数据库的用户的密码
SYS_MYSQL_DB= extmail 使用数据库的名称
SYS_MYSQL_HOST= localhost 数据库服务器地址
SYS_MYSQL_SOCKET= /tmp/mysql.sock 数据库套接文件位置
#vim/usr/local/apache2/conf/httpd.conf
NameVirtualHost*:80
<VirtualHost*:80>
ServerNamemail.abc.com
DocumentRoot/usr/local/apache2/htdocs/extmail/html/
ScriptAlias/extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"
Alias/extmail "/usr/local/apache2/htdocs/extmail/html/"
</VirtualHost>
Userpostfix 找到 User 该用户为postfix
Grouppostfix 找到 Group 该组为postfix
这里由于前面我们并没有启用Suexec 所以我们没有在虚拟主机中添加 SuexecUerGroup postfixpostfix
#/usr/local/apache2/bin/apachectlrestart
到这一步很多网上的文档都会说这时候只要在客户端访问http://mail.wisefund.com就可以看到ExtMail的登录界面,但是经过我很多次实践改动配置得到的结果都是访问页面不存在404的错误提示页面,一度我曾认为可能是我之前编译的那三个倚赖包有问题,或者是我的PHP有问题,以及cgi权限问题都想到但是结果依然是404页面不存在,但是我可以很正常的看到访问http://mail.wisefund.com时候页面确实是跳转到了http://mail.wisefund.com/extmail/cgi/index.cgi这个目录,而且我这个目录中文件确实存在,没有任何问题,经过我多次尝试终于找到原因如果要成功的访问到这个页面就必须把Extman装上,并且在apache配置文件中写入extman的路径这样我终于如愿以偿的看到了期望已久的ExtMail的登录界面。
下面我们开始安装Extman
4个倚赖包
#tar-zxvf GD-2.41.tar.gz -C /usr/local/src
#cd /usr/local/src/GD-2.41
#perlMakefile.PL
#make
#makeinstall
#tar-zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src
#cd /usr/local/src/File-Tail-0.99.3
#perlMakefile.PL
#make
#makeinstall
rrdtool_i386_32位系统安装
#rpm-ivh rrdtool-1.2.23-3.el5.i386.rpm
#rpm-ivh rrdtool-perl-1.2.23-3.el5.i386.rpm
rrdtool_ADM64_64位系统安装
#rpm -ivh rrdtool-1.2.27-3.el5.x86_64.rpm
#rpm -ivh rrdtool-perl-1.2.27-3.el5.x86_64.rpm
Extman套件
#tar-zxvf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs
#mv extman-0.2.5extman
#cd extman
#chown-R postfix:postfix cgi
#mkdir/tmp/extman 临时回话保存目录
#chown-R postfix:postfix /tmp/extman
#vim/usr/local/apache2/htdocs/extman/webman.cf
SYS_CONFIG= /usr/local/apache2/htdocs/extman/ 程序根目录
SYS_LANGDIR= /usr/local/apache2/htdocs/extman/lang 语言包文件目录
SYS_TEMPLDIR= /usr/local/apache2/htdocs/extman/html 系统模版目录
SYS_MAILDIR_BASE= /mailbox 邮件数据存放路径
SYS_MYSQL_USER= webman 访问mysql数据库的用户
SYS_MYSQL_PASS= webman 访问mysql数据库的用户的密码
SYS_MYSQL_DB= extmail 使用的数据库名称
SYS_MYSQL_HOST= localhost 数据库服务器地址
SYS_MYSQL_SOCKET= /tmp/mysql.sock 数据库套接文件位置
#vim/usr/local/apache2/conf/httpd.conf
NameVirtualHost*:80
<VirtualHost*:80>
ServerNamemail.abc.com
DocumentRoot/usr/local/apache2/htdocs/extmail/html/
ScriptAlias/extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"
Alias/extmail "/usr/local/apache2/htdocs/extmail/html/"
|
Alias /extman"/usr/local/apache2/htdocs/extman/html/"
</VirtualHost>
#/usr/local/apache2/bin/apachectlrestart
修改登录extmail时POP3与SMTP服务器设置信息提示信息:
# vim/usr/local/apache2/htdocs/extmail/html/default/index.html
POP3<b>:</b> pop3.abc.com<br />
SMTP<b>:</b> smtp.abc.com<br />
http://mail.wisefund.com就可以看见ExtMail的登录界面了。
在客户端访问
http://mail.wisefund.com/extman就可以看见Extman后台管理登录界面了
默认管理员账户:[email protected]
默认密码:extmail*123*
[root@localhost~]# ln -sf /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-ini /usr/sbin/
[root@localhost~]# ln -sf /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin/
[root@localhost~]# cp -a /usr/local/apache2/htdocs/extman/addon/mailgraph_ext /usr/local
#/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init start
#/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init start
#echo /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init start >> /etc/rc.local
#echo /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init start >> /etc/rc.local
参考启动文件rc.local
touch/var/lock/subsys/local
/usr/local/mysql/bin/mysqld_safe--user=mysql &
/usr/local/apache2/bin/apachectlstart
/usr/local/sbin/dovecot
/usr/sbin/postfixstart
/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init start
/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init start
/etc/init.d/saslauthdstart
/etc/init.d/courier-authlibstart
/usr/local/nagios/bin/nrpe-c /usr/local/nagios/etc/nrpe.cfg -d
[root@localhost~]# vim /etc/postfix/main.cf
smtpd_client_restrictions= check_client_access hash:/etc/postfix/access
[root@localhost~]# vim /etc/postfix/access
192.168.4REJECT
192.168.4.1OK
bbc.comREJECT
[root@localhost~]# postmap /etc/postfix/access
[root@localhost~]# vim /etc/postfix/main.cf
smtpd_helo_required= yes
smtpd_helo_restrictions= reject_invalid_hostname
[root@localhost~]# postfix reload
[root@localhost~]# vim /etc/postfix/mail.cf
smtpd_sender_login_maps=
mysql:/etc/postfix/mysql_virtual_sender_maps.cf,
mysql:/etc/postfix/mysql_virtual_alias_maps.cf
smtpd_sender_restrictions=
permit_mynetworks,
reject_sender_login-mismatch,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
check_sender_accesshash:/etc/postfix/sender_access
[root@localhost~]# vim /etc/postfix/sender_access
marketing@REJECT
fake.aptech.comREJECT
[root@localhost~]# postmap /etc/postfix/sender_access
[root@localhost~]# vim /etc/postfix/main.cf
smtpd_recipient_restrictions=
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain
[root@localhost~]# postfix restart
1) 安装MailScanner 扫描调度工具
[root@localhost~]# tar zxvf MailScanner-4.75.11-1.rpm.tar.gz
[root@localhost~]# cd MailScanner-4.75.11-1
[[email protected]]# ./install.sh
2) 修改配置文件MailScanner
[root@localhost~]# vim /etc/MailScanner/MailScanner.conf
RunAs User = postfix
RunAs Group = postfix
IncomingQueue Dir = /var/spool/postfix/hold
OutgoingQueue Dir = /var/spool/postfix/incoming
MTA=postfix
RequiredSpamAssassin Score =7
HighSpamAssassin Score = 10
SpamActions = deliver header “X-Spam-Status: Yes”
HighSoring Spam Actions = delete forward [email protected]
3) 配置Postfix 支持调用MailScanner
[root@localhost~]# vim /etc/postfix/main.cf
header_checks= regexp: /etc/postfix/header_checks
[root@localhost~]# vim /etc/postfix/header_checks
/^Received:/HOLD
4) 调整邮件过滤队列的目录属主、属组,并启动MailScanner服务程序
[root@localhost~]# chown -R postfix.postfix
/var/spool/MailScanner/incoming
[root@localhost~]# chown -R postfix.postfix
/var/spool/MailScanner/quarantine
[root@localhost~]# service MailScanner start
[root@localhost~]# chkconfig -level 35 MailScanner on
1) 安装并配置SpamAssassin 垃圾邮件过滤器
[root@localhost~]# mount /dev/cdrom /media
[root@localhost~]# cd /media
[root@localhostmedia]# rpm -ivh spamassassin-3.1.7-4.e15.i386.rpm
2) 修改配置文件local.cf
(位于“/etc/mail/spamassassin/local.cf”,一般不需要进行任何修改,保
持默认设置即可)
3) 启动SpamAssassin 服务
[root@localhost~]# service spamassassin start
[root@localhost~]# chkconfig -level 35 spamassassin on
1) 安装F-Port 软件包安装过程中出现提示是按回车键接受默认设置
[root@localhost~]# tar zxvf fp-Linux-i686-ws.tar.gz -C /opt/
[root@localhost~]# cd /opt/f-prot/
[root@localhostf-prot]# ./install-f-prot.pl
2) 升级F-Port 病毒库(服务器要能够访问Internet 互联网)
[root@localhostf-prot]# /opt/f-prot/fpupdate
[root@localhostf-prot]# crontab -e
00 8* * * /opt/f-prot/fpupdate
[root@localhostf-prot]# service crond start
[root@localhostf-prot]# chkconfig -level 35 crond on
下面附上我成功访问之后的登录界面
如下图:
从后台登录创建wisefund.com域名
添加用户chenglu
登录ExtMail
这里需要注意一点就是要登录extmail必须解析域名,使用IP访问时候无法登录,会提示IP域名无效。下面我们看一下登录进去的界面。
登录进去首页显示系统管理员列表
域列表中的wisefund.com是我们刚才创建的
基础设置 设置用户名,后面可选用户所在的域。
用户的磁盘限额、网络磁盘限额以及过期日期是否激活等(默认磁盘、网络磁盘限额为5M)
设置完基本信息保存修改会提示密码错误,所有要设置密码之后才可以保存修改。
设置密码、密码找回问题以及是否禁止用户修改密码
这里一般保持默认即可
可以添加别名、别名所在的域,设置多个目标地址提示 目标地址每行只能写一个 并激活
基础设置 设置域名、域名描述、最大用户、最大别名、最大限额、最大网络磁盘限额、传输方式、还有是否允许自由注册(如果勾上这个选项的话,在ExtMail登录页面下面有一个免费注册邮箱就可以注册,如果不勾的话注册免费邮箱时候就会提示域名不提供注册服务!)是否激活域名、最后是域名过期日期。
设置域名新账户默认限额、网络磁盘限额、新账户默认生命周期以及新账户默认开启的服务
管理员名称、通用名、过期日期是否激活等。同普通用户一样需要设置密码才能保存修改。
同普通用户一样也是 设置密码、找回密码问题与答案是否禁止用户修改密码等
可以设置管理员管理的域名增加、删除域名等
按照提示说明可以设置邮件的群发,可用于通知类型的邮件
在这里可以查看各类日志分析邮件服务器是否正常
这里可以设置个人的信息包括姓名、密码及密码问题等
其他选项卡同其他的邮件服务器一样。