开始配置学习postfix 搭建, 那是相当苦的一逼,折腾了2星期才处理并解决了相关问题,虽然在网上东拼西凑找到了方法 但总算是搭建出来了一套完整的postfix系统:
本人由于书初学,从基本的需求、软件依赖、到测试OK 都一一写了出来 整理了一套完整的过程:
(下面也是我根据别人的word文档进行了简单修改以及错误故障排除方法 )
CentOS 5.8 X64 最小化安装
关闭iptables防火墙 service iptables stop
关闭SELinux setenforce 0
需要安装 yum install gcc*
Linux下挂载 ISO 镜像文件 (自选使用)
#mount -o loop -t iso9660 /** /mydisk.iso /mnt/vcdrom
如:#mount -o loop -t iso9660 /usr/local/tooldisk/mydisk3.iso /mnt/vcdrom
httpd-2.2.9.tar.gz 安装源码包apache
mysql-5.0.56.tar.gz 安装源码包mysql
php-5.2.6.tar.bz2 安装php软件
postfix-2.6.2.tar.gz postfix主程序
postfix-2.6.2-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.62.4.tar.bz2 SMTP发信认证
Unix-Syslog-1.1.tar.gz
DBI-1.616.tar.gz
DBD-mysql-4.020.tar.gz 以上三个包为extmail的倚赖包
GD-2.46.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的倚赖包
一 安装环境
yum install gcc* 安装GCC环境
1.安装apache:
通常情况下我们都把开源软件包都安装在/usr/local/src/下,这样方便管理和维护
[root@localhost mail]#tar �Czxvf httpd-2.2.9.tar.gz -C /usr/local/src/ //解压软件包到/usr/local/src/
[root@localhost mail]#cd /usr/local/src/httpd-2.2.9 //切换到解压后的目录中
[root@localhost httpd-2.2.9]#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
//编译 ./configure 后面根据具体情况加入相应参数
#make //编辑
#make install //安装
这里我们并没有将Suexec编译进apache中去,提到这个的原因是因为后面我们装postfix时候的后台管理extman是通过CGI的方式来调用程序的,如果不启用Suexec的话那么就会限制其他用户调用CGI程序,但考虑到启用Suexec的风险我们在此就不启用它了。(启用方式:--enable-suexec �Cwith-suexec-caller=daemon �Cwith-suexec-docroot=/usr/local/apache2/htdocs)
如果出现错误提示:
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
需要在 vi /usr/local/apache2/conf/httpd.conf 添加
ServerName localhost:80
2.安装mysql:
yum install ncurses-devel 缺少ncurses安装包
如果不安装 在执行 ./configure --prefix=/usr/local/mysql 如下错误
checking for termcap functions library... configure: error: No curses/termcap library found
[root@localhost mail]# useradd -M -s /sbin/nologin mysql
//添加mysql用户,如果安装系统时候已经装过mysql会提示用户已存在,建议在安装前先卸载掉系统自带的mysql,卸载完成后必须重启,否则新装的mysql会无法启动,提示错误信息3306端口被占有
[root@localhost mail]#tar -zxvf mysql-5.0.56.tar.gz -C /usr/local/src
[root@localhost mail]#cd /usr/local/src/mysql-5.0.56
[root@localhost mysql-5.0.56]#./configure --prefix=/usr/local/mysql
[root@localhost mysql-5.0.56]# make
[root@localhost mysql-5.0.56]# make install
配置mysql
[root@localhost mysql-5.0.56]#cp support-files/my-medium.cnf /etc/my.cnf 复制主配置文件
[root@localhost mysql-5.0.56]#/usr/local/mysql/bin/mysql_install_db --user=mysql 初始化
[root@localhost mysql-5.0.56]#chown -R root:mysql /usr/local/mysql
[root@localhost mysql-5.0.56]#chown -R mysql /usr/local/mysql/var
[root@localhost mysql-5.0.56]#echo “/usr/local/mysql/lib/mysql” >> /etc/ld.so.conf 添加库文件路径
[root@localhost mysql-5.0.56]#ldconfig 刷新库文件搜索路径
[root@localhost mysql-5.0.56]#/usr/local/mysql/bin/mysqld_safe --user=mysql & 后台安全启动 (如果显示启动并且卡住不动按回车)
#cd /usr/local/src/mysql-5.0.56
[root@localhost mysql-5.0.56]#cp support-files/mysql.server /etc/init.d/mysqld 复制启动脚本
[root@localhost mysql-5.0.56]#chmod +x /etc/init.d/mysqld 赋予脚本执行权限
[root@localhost mysql-5.0.56]#chkconfig --add mysqld 添加到系统自动启动服务中
[root@localhost mysql-5.0.56]#chkconfig mysqld on 默认启动mysql
[root@localhost mysql-5.0.56]#chkconfig --list mysqld 查看mysql在什么级别启动或者关闭
[root@localhost mysql-5.0.56]#echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile 设置系统全局的环境变量PATH值,方便使用mysql数据库命令
关闭文件,运行下面的命令,让配置立即生效
source /etc/profile
3.安装php:
先安装 ibxm包
yum install libxml2
yum install libxml2-devel -y
[root@localhost mail]#tar -jxvf php-5.2.6.tar.bz2 -C /usr/local/src
[root@localhost mail]#cd /usr/local/src/php-5.2.6
[root@localhost 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
[root@localhost php-5.2.6]# make
[root@localhost php-5.2.6]# make test
[root@localhost php-5.2.6]# make install
[root@localhost php-5.2.6]# cp php.ini-dist /usr/local/php5/php.ini 复制配置文件
[root@localhost php-5.2.6]# vim /usr/local/apache2/conf/httpd.conf 修改apache服务的主配置文件使其支持php
修改如下内容:
LoadModule php5_module modules/libphp5.so 确认这行的存在,如果没有就重新编译php
AddType application/x-httpd-php .php 添加这行记录(经过多次错误探索,在application/x-httpd-php .php之间只能有一个空格)
DirectoryIndex index.php index.html 在这行添加关于php格式的首页
然后保存退出
4.测试php是否与apache整合成功
[root@localhost ~]# vim /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
使用 自身带的命令重启apache服务
[root@localhost php-5.2.10]# /usr/local/apache2/bin/apachectl stop
[root@localhost php-5.2.10]# /usr/local/apache2/bin/apachectl start
在浏览器中输入http://192.168.2.100/test.php 看到下图表示跟apache服务整合成功
Mysql测试
[root@localhost ~]# vim /usr/local/apache2/htdocs/testdb.php
<?php
$link=mysql_connect( 'localhost','test','');
If (!$link) echo "sorry It is Failed !!!";
else echo "Good It is OK !!!";
mysql_close();
?>
在IE浏览器中输入网址http://192.168.2.100/testdb.php 看到下图表示跟mysql服务整合成功
至此环境搭建完成
二 安装postfix 软件
1. 安装postfix之前首先停止掉系统自带的sendmail软件
[root@localhost mail]#service sendmail stop
[root@localhost mail]#chkconfig --level 2345 sendmail off
若没有sendmail服务 则停止以下:
chkconfig --level 2345 exim off (负责会占用25端口)
2.添加组和用户
[root@localhost mail]#groupadd -g 1200 postdrop
[root@localhost mail]#groupadd -g 1000 postfix
[root@localhost mail]#useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
不创建宿主目录 附属组
3.安装postfix软件及依赖包
Yum install patch
[root@localhost mail]#tar -zxvf postfix-2.6.2.tar.gz -C /usr/local/src
[root@localhost mail]#cp postfix-2.6.2-vda-ng.path.gz /usr/local/src 补丁文件,用以支持虚拟用户设置配额
[root@localhost mail]#cd /usr/local/src
[root@localhost src]#gunzip postfix-2.6.2-vda-ng.path.gz
[root@localhost src]# cd postfix-2.6.2
[root@localhost postfix-2.6.2]# patch -p1 <../postfix-2.6.2-vda-ng.patch 打补丁(注意此处-p1,后面是数字1而不是字母l)
以上显示表示补丁已经打上。
rpm -e cyrus-sasl --nodeps 卸载系统默认安装
yum install db4-devel 需要安装补丁包
yum install cyrus-sasl*
[root@localhost postfix-2.6.2]# make makefiles \
'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'
[root@localhost postfix-2.6.2]# make
[root@localhost postfix-2.6.2]# make install
安装过程中会出现互动提问,直接选择默认设置即可。
4.postfix主配置文件修改
使用postconf工具来简化一下main.cf配置文件:
[root@localhost ~]# cd /etc/postfix/
[root@localhost postfix]# cp main.cf main2.cf
[root@localhost postfix]# postconf -n > main2.cf
[root@localhost postfix]# cat main2.cf
[root@localhost postfix-2.6.2]#vim /etc/postfix/main.cf
需要修改和添加的内容如下:
Inet_interfaces = all 默认设置
myhostname = mail.test.com 主机名
mydomain = test.com 邮件域名
myorigin = $mydomain 外发邮件时发件人地址中的邮件域名
mydestination = $mydomain,test.com ,$myhostnam , mail.test.com 可接收的邮件地址中的域名
home_mailbox = Maildir/ 邮件存储位置格式
[root@localhost postfix-2.6.2]#postfix check 检查配置
[root@localhost postfix-2.6.2]#postconf -m //查看是否支持mysql查询
[root@localhost postfix-2.6.2]#postfix start //启动服务
5.smtp发送邮件测试
[root@localhost postfix-2.6.2]#groupadd mailusers //添加mailusers组
[root@localhost postfix-2.6.2]#useradd -g mailusers -s /sbin/nologin wamgshuai //添加用户
[root@localhost postfix-2.6.2]#useradd -g mailusers -s /sbin/nologin test //添加用户
[root@localhost postfix-2.6.2]#passwd wangshuai //给用户wangshuai设置密码
[root@localhost postfix-2.6.2]#passewd test //给用户test设置密码
如果出现:以下错误
cat /var/log/maillog 如果提示
Jan 27 19:30:18 i-t9pu0xjs postfix/smtpd[10849]: fatal: open database /etc/aliases.db: No such file or directory
Jan 27 19:30:19 i-t9pu0xjs postfix/master[6082]: warning: process /usr/libexec/postfix/smtpd pid 10849 exit status 1
Jan 27 19:30:19 i-t9pu0xjs postfix/master[6082]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
需要执行 newaliases 然后重新 启动 postfix
SMTP发送邮件测试
[root@localhost postfix-2.6.2]#telnet localhost 25 连接本地的SMPT端口
Tring 127.0.0.1..
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
220 mail.test.com ESMTP Postfix
Helo localhost 宣告客户端主机地址
250 mail.test.com
MAIL FROM:[email protected] 发信人地址
250 2.1.0 ok
RCPT TO: [email protected] 收信人地址
250 2.1.5 ok
DATA 标记开始写信
354 End data with <CR><LF>.<CR><LF>
Subject: this is a test! 信件题目
Hello!
This is a test mail.
. “点”表示信件结束
250 2.0.0. ok:queued as 2F9AD787DA
quit 退出
221 2.0.0 Bye
Connection closed by foreign host.
查看接收到的邮件
[root@localhost~]#cat /home/test/Maildir/new/ 按tab键
看到的内容如下:
[root@localhost~]#cat /home/test/Maildir/new/1334114036.V803Ie48bM117168.localhost.localdomain
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by mail.test.com (Postfix) with SMTP id 3EA2E2CEB07
for <[email protected]>; Wed, 11 Apr 2012 11:12:15 +0800 (CST)
subject:this is a test!
Message-Id: <[email protected]>
Date: Wed, 11 Apr 2012 11:12:15 +0800 (CST)
From: [email protected]
To: undisclosed-recipients:;
test one !!!
可以看见刚才发的那封邮件,说明SMPT没有问题。
三 安装Dovecot邮局软件 (提供pop3/imap4协议)
1.安装Dovecot
2.yum install pam-devel 一定要在安装dovecot 之前安装
[root@localhost mail]# useradd -M -s /sbin/nologin dovecot
[root@localhost mail]# tar -zxvf dovecot-1.1.4.tar.gz -C /usr/local/src
[root@localhost mail]# cd /usr/local/src/dovecot-1.1.4
[root@localhost dovecot-1.1.4]#./configure --sysconfdir=/etc --with-mysql --with-pam
[root@localhost dovecot-1.1.4]# make
[root@localhost dovecot-1.1.4]# make install
2.配置Dovecot
[root@localhost dovecot-1.1.4]#cp /etc/dovecot-example.conf /etc/dovecot.conf 复制主配置文件
[root@localhost dovecot-1.1.4]#vim /etc/dovecot.conf
修改及添加内容如下:
ssl_disable = yes 禁用SSL机制
protocols = pop3 imap 指定邮局协议
disable_plaintext_auth = no 允许明文密码认证
mail_location = maildir:~/Maildir 设置邮件存储格式和位置
[root@localhost dovecot-1.1.4]#vim /etc/pam.d/dovecot 创建pam认证文件
添加如下内容:
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
[root@localhost dovecot-1.1.4]#/usr/local/sbin/dovecot -c /etc/dovecot.conf 启动
3.pop3邮件接收测试
[root@localhost dovecot-1.1.4]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
user test //输入用户名
+OK
pass 12test //输入密码
+OK Logged in.
list //列出邮件列表
+OK 1 messages:
1 481
.
retr 1 //查看第一封邮件
+OK 481 octets
下面显示邮件内容,测试完成
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by mail.test.com (Postfix) with SMTP id 3EA2E2CEB07
for <[email protected]>; Wed, 11 Apr 2012 11:12:15 +0800 (CST)
subject:this is a test!
Message-Id: <[email protected]>
Date: Wed, 11 Apr 2012 11:12:15 +0800 (CST)
From: [email protected]
To: undisclosed-recipients:;
test one !!!
.
输入quit退出
四 安装Webmail软件
1.squirrelmail安装
[root@localhost mail]# tar -jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs
[root@localhost mail]# cd /usr/lcaol/apache2/htdocs/
[root@localhost htdocs]# mv squirrelmail-1.4.13 webmail
[root@localhost mail]# tar -jxf zh_CH-1.4.13.tar.gz -C /usr/local/apache2/htdocs/webmail 解压汉化软件
2.配置webmail
[root@localhost htdocs]#cd webmail
[root@localhost webmail]# mkdir -p attach data
[root@localhost webmail]# chown -R daemon:daemon attach/ data/
[root@localhost webmail]# chmod 730 attach/
[root@localhost webmail]# cp config/config_default.php config/config.php 创建配置文件
[root@localhost webmail]# vim config/config.php
添加或修改内容如下:
$squirrelmail_default_language = ‘zh_CN’;
$default_charset = ‘zh_CN.UTF-8’;
$domain = ‘test.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/apachectl restart 重启 apache 服务
客户端IE地址栏中输入 http://mail.test.com/webmail (前提mail.test.com可以被解析即安装有DNS服务器,否则用ip:http://192.168.2.100/webmail)
即可看见下图:
到此我们的postfix+webmail已经安装完成,但是为了使我们更好的管理维护邮件服务器的前端与后台接下来我们来安装extmail和extman以便实现我们的需求。
五 初始化extmail软件
数据库脚本设置
[root@localhost mail]# service mysqld restart
[root@localhost mail]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/src
[root@localhost mail]# cd /usr/local/src/extman-0.2.5/docs
[root@localhost docs]# mysql -u root -p < extmail.sql
[root@localhost docs]# mysql -u root -p <init.sql //脚本导入数据库的时候会询问密码,默认情况下root用户密码为空
六 配置postfix
1.修改配置文件
[root@localhost docs]#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 号
[root@localhost docs]#cp mysql_virtual_* /etc/postfix/ 在上面的三行配置中指定了这三个文件
七 为虚拟用户设置SMTP发信认证
1.安装软件
提示如下错误
configure: error: --with-authmysql specified but no mysqlclient.so
yum install mysql-devel
注意:确认系统中的rpm格式的mysql 软件被卸载
[root@localhost mail]# tar -jxvf courier-authlib-0.62.4.tar.bz2 -C /usr/local/src
[root@localhost mail]# cd /usr/local/src/courier-authlib-0.62.4/
[root@localhost courier-authlib-0.62.4]#./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
[root@localhost courier-authlib-0.62.4]# make
[root@localhost courier-authlib-0.62.4]# make install
[root@localhost courier-authlib-0.62.4]# make install-configure 生成默认配置文件authmysqlrc 和 authdaemonrc
2.添加courier-authlib的库文件路径
[root@localhost courier-authlib-0.62.4]#vim /etc/ld.so.conf
加入下面内容:
/usr/local/courier-authlib/lib/courier-authlib
[root@localhost courier-authlib-0.62.4]#ldconfig //重新读取配置文件
3 修改authdaemonrc主配置文件
[root@localhost courier-authlib-0.62.4]#cd /usr/local/courier-authlib/etc/authlib
[root@localhost authlib]# cp authdaemonrc authdaemonrc.bak
[root@localhost authlib]# vim authdaemonrc
修改如下内容:
authmodulelist=”authmysql”
authmodulelistorig=”authmysql”
[root@localhost authlib]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon
4 修改authmysqlrc 文件
[root@localhost authlib]# cp authmysqlrc authmysqlrc.bak
[root@localhost authlib]# vim authmysqlrc
修改或添加如下内容:
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)合并出用户的邮件存储路径
5 复制脚本,启动服务
[root@localhost authlib]# cd /usr/local/src/courier-authlib-0.62.4/
[root@localhost courier-authlib-0.62.4]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
[root@localhost courier-authlib-0.62.4]#chmod 755 /etc/rc.d/init.d/courier-authlib
[root@localhost courier-authlib-0.62.4]#chkconfig --level 35 courier-authlib on
[root@localhost courier-authlib-0.62.4]#service courier-authlib start
八 修改Cyrus sasl设置
[root@localhost ~]# vim /usr/lib/sasl2/smtpd.conf 可新创建
加入如下内容:
pwcheck_method:authdaemond
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
九 修改 Dovecot配置
1.修改Dovecot的主配置文件
[root@localhost ~]#vim /etc/dovecot.conf (测试6.5系统 是在/etc/dovecot下 多了一个路径)
mail_location = maildir:/mailbox/%d/%n/Maildir
…………………………………………………………………….省略号表示文件中原有的内容
auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot-mysql.conf
}
……………………………………………………………………...省略号表示文件中原有内容
}
2 建立数据查询配置文件
[root@localhost ~]#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' 查询用户身份语句
十 建立虚拟用户
[root@localhost ~]#mkdir -p /mailbox/extmail.org/postmaster/Maildir
[root@localhost ~]#cd /mailbox/extmail.org/postmaster/Maildir
[root@localhost Maldir]# chown -R postfix:postfix /mailbox
[root@localhost Maldir]# dovecot 启动服务
确认authlib服务
[root@localhost Maldir]# /usr/local/courier-authlib/sbin/authtest -s login [email protected] extmail
Authentication succeeded. 成功提示信息
Authenticated: [email protected] (uid 1000, gid 1000)
Home Directory: /mailbox/extmail.org/postmaster
Maildir: /mailbox/extmail.org/postmaster/Maildir/
Quota: (none)
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
Cleartext Password: extmail
Options: (none)
如果出现一下错误
Authentication FAILED: Input/output error
cat /var/log/maillog 查看maillog日志显示
Jan 22 20:30:04 localhost authdaemond: failed to connect to mysql server (server=localhost, userid=extmail): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方法:
mkdir /var/lib/mysql 默认是没有的
ln -s /tmp/mysql.sock /var/lib/mysql 建立一个软连接 并添加到默认启动项
基于Perl 语言开发的中文Webmail管理平台
套件:ExtMail --Web 界面的邮件操作
Extman �CWeb 界面的邮件系统管理
3个倚赖包
[root@localhost mail]# tar -zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src
[root@localhost mail]# cd /usr/local/src/Unix-Syslog-1.1
[root@localhost Unix-Syslog-1.1]# perl Makefile.PL
[root@localhost Unix-Syslog-1.1]# make
[root@localhost Unix-Syslog-1.1]# make install
[root@localhost mail]# tar -zxvf DBI-1.616.tar.gz -C /uar/local/src
[root@localhost mail]# cd /usr/local/src/DBI-1.616
[root@localhost DBI-1.616]# perl Makefile.PL
[root@localhost DBI-1.616]# make
[root@localhost DBI-1.616]# make install
[root@localhost mail]# tar -zxvf DBD-mysql-4.020.tar.gz -C /usr/local/src
[root@localhost mail]# cd /usr/loca/src/DBD-4.020
[root@localhost DBD-mysql-4.020]# perl Makefile.PL
[root@localhost DBD-mysql-4.020]# make
[root@localhost DBD-mysql-4.020]# make install
注意以上三个包在编译安装过程可能会提示 警告信息 隐式函数 计算出的变量值未被使用等,只要没有error信息就一切ok
安装ExtMail
[root@localhost mail]# tar -zxvf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs
[root@localhost mail]# cd /usr/local/apache2/htdocs
[root@localhost htdocs]# mv extmail-1.0.5 extmail
[root@localhost htdocs]# cd extmail
[root@localhost extmail]# chown -R postfix:postfix cgi
[root@localhost extmail]# cp webmail.cf.default webmail.cf
[root@localhost extmail]#vim webmail.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 数据库套接文件位置
[root@localhost extmail]#vim /usr/local/apache2/conf/httpd.conf
添加如下内容:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.wisefund.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>
User postfix 找到 User 该用户为postfix
Group postfix 找到 Group 该组为postfix
这里由于前面我们并没有启用Suexec 所以我们没有在虚拟主机中添加 SuexecUerGroup postfix postfix
[root@localhost extmail]#/usr/local/apache2/bin/apachectl restart //重启服务
需要先安装
5个倚赖包
[root@localhost mail]# tar -zxvf GD-2.46.tar.gz -C /usr/local/src
[root@localhost mail]# cd /usr/local/src/GD-2.46
[root@localhost GD-2.46]# perl Makefile.PL
[root@localhost GD-2.46]# make
[root@localhost GD-2.46]# make install
[root@localhost mail]# tar -zxvf File-Tail-0.99.3.tar.gz -C /uar/local/src
[root@localhost mail]# cd /usr/local/src/File-Tail-0.99.3
[root@localhost File-Tail-0.99.3]# perl Makefile.PL
[root@localhost File-Tail-0.99.3]# make
[root@localhost File-Tail-0.99.3]# make install
安装rrdtool 需要的依赖包
yum -y install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel
安装 rrdtool rrdtool-devel perl-rrdtool
rpm -ivh *-1.2.28* (一起安装 依赖性太强、单个安装不上)
Extman 套件
[root@localhost mail]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs
[root@localhost mail]# cd /usr/local/apache2/htdocs
[root@localhost htdocs]# mv extman-0.2.5 extman
[root@localhost htdocs]# cd extman
[root@localhost extman]# chown -R postfix:postfix cgi
[root@localhost extman]# mkdir /tmp/extman // 临时回话保存目录
[root@localhost extman]# chown -R postfix:postfix /tmp/extman
[root@localhost 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 数据库套接文件位置
[root@localhost extman]# vim /usr/local/apache2/conf/httpd.conf
修改内容如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.wisefund.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/"
ScriptAlias /extman/cgi "/usr/local/apache2/htdocs/extman/cgi/"
Alias /extman "/usr/local/apache2/htdocs/extman/html/"
</VirtualHost>
#/usr/local/apache2/bin/apachectl restart
现在在客户端访问:
http://mail.test.com 就可以看见ExtMail的登录界面了。
在客户端访问:
http://mail.test.com/extman 就可以看见Extman后台管理登录界面了
默认管理员账户:[email protected]
默认密码:extmail*123*
登录后界面如下:
允许客户端 foxmial 使用 (红线为新增加部分)
Vi /etc/postfix/main.cf
inet_interfaces = all
mynetworks = 0.0.0.0/0 #允许所有网段通过无服务器发送邮件
myhostname = mail.51colud.com
mydomain = 51colud.com
myorigin = $mydomain
允许 客户端foxmail通过验证收发邮件
mtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,
reject_unauth_destination,reject_non_fqdn_recipient
smtpd_sasl_application_name = smtpd
/usr/local/apache2/htdocs/extman/daemon/cmdserver -d 开启后显示后台系统信息
[root@i-nmodcmxf mailgraph_ext]#
ln -s /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin/
/usr/sbin/mailgraph-init start 开启图形日志
vi /etc/rc.local
/usr/local/apache2/bin/apachectl start 开机启动httpd
/usr/local/sbin/dovecot -c /etc/dovecot.conf 开机启动dovecot
/usr/local/apache2/htdocs/extman/daemon/cmdserver -d 开机启动后台系统信息
/usr/sbin/mailgraph-init start 开机启动图形化日志
后台管理:
1 添加用户:
点击对应的域名 选择创建对应的用户即可
2.所谓别名:就是用户组
进入对应的域名 创建组 并将成员添加到组中 ―注意的是 每一行一个用户
如果停止一个用户使用 只需选择 对应的用户 将 激活 选项的√号去掉即可。