开始配置学习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

 

1.postfix所需软件包及存放目录

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  –zxvf  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 –with-suexec-caller=daemon –with-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服务整合成功

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统

  

 

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服务整合成功

 

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_02

 

至此环境搭建完成

 

 二 安装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)

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_03

以上显示表示补丁已经打上

 

       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设置密码

 

如果出现:以下错误

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_04

 

 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:wangshuai@test.com      发信人地址

250 2.1.0 ok

RCPT  TO: test@test.com           收信人地址

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: <wangshuai@test.com>

X-Original-To: test@test.com

Delivered-To: test@test.com

Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])

        by mail.test.com (Postfix) with SMTP id 3EA2E2CEB07

        for <test@test.com>; Wed, 11 Apr 2012 11:12:15 +0800 (CST)

subject:this is a test!

Message-Id: <20120411031250.3EA2E2CEB07@mail.test.com>

Date: Wed, 11 Apr 2012 11:12:15 +0800 (CST)

From: wangshuai@test.com

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:

 481

.

retr 1              //查看第一封邮件

+OK 481 octets

 

下面显示邮件内容,测试完成

Return-Path: <wangshuai@test.com>

X-Original-To: test@test.com

Delivered-To: test@test.com

Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])

        by mail.test.com (Postfix) with SMTP id 3EA2E2CEB07

        for <test@test.com>; Wed, 11 Apr 2012 11:12:15 +0800 (CST)

subject:this is a test!

Message-Id: <20120411031250.3EA2E2CEB07@mail.test.com>

Date: Wed, 11 Apr 2012 11:12:15 +0800 (CST)

From: wangshuai@test.com

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/';

$p_w_upload_dir  =  '/usr/local/apache2/htdocs/webmail/attach/';

#/usr/local/apache2/bin/apachectl  restart  重启 apache 服务

 

客户端IE地址栏中输入 http://mail.test.com/webmail (前提mail.test.com可以被解析即安装有DNS服务器,否则用iphttp://192.168.2.100/webmail)

即可看见下图:

 

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_05 

 

 

 

到此我们的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'  查询用户身份语句

 

 

                          

  十 建立虚拟用户

 

 

1 建立邮箱目录并调整权限

[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  启动服务

 

2 虚拟用户测试

确认authlib服务

[root@localhost Maldir]# /usr/local/courier-authlib/sbin/authtest  -s  login  postmaster@extmail.org  extmail

Authentication succeeded.                          成功提示信息

 

     Authenticated: postmaster@extmail.org  (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    建立一个软连接 并添加到默认启动项 

 

 

 

 

 

 

 

 

十一 ExtMail平台

基于Perl 语言开发的中文Webmail管理平台

套件:ExtMail --Web 界面的邮件操作

      Extman –Web 界面的邮件系统管理

1平台安装

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

 

2 修改配置文件

 

[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  数据库套接文件位置

3 修改apache服务,添加虚拟主机

[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   //重启服务

 

十二 Extman平台

需要先安装

    yum install lib*

 

1安装包

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

2 修改配置文件

[root@localhost extman]# cp webman.cf.default webman.cf

[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  数据库套接文件位置

3 调整apache主配文件。添加extman相关目录别名

[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的登录界面了。

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_06

 

 

 

在客户端访问:

http://mail.test.com/extman 就可以看见Extman后台管理登录界面了

 

 linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_07

 

默认管理员账户:root@extmail.org

默认密码:extmail*123*

 

登录后界面如下:

 

 linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_08

 

 



  


 允许客户端 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   开启后显示后台系统信息


linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_09 linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_10十三 设置邮件系统的图形化日志信息 

[root@i-nmodcmxf mailgraph_ext]#

ln -s /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init  /usr/sbin/

[root@i-nmodcmxf mailgraph_ext]# mkdir /usr/local/mailgraph_ext/[root@i-nmodcmxfmailgraph_ext]#ln -s /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph_ext.pl /usr/local/mailgraph_ext/[root@i-nmodcmxfmailgraph_ext]#ln -s  /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor.pl /usr/local/mailgraph_ext/


/usr/sbin/mailgraph-init start  开启图形日志


linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_11



 

 

添加到开机启动

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.所谓别名:就是用户组 

            进入对应的域名 创建组 并将成员添加到组中  —注意的是 每一行一个用户

linux下搭建基于mysql虚拟用户的Postfix邮件系统_邮件系统_12


如果停止一个用户使用 只需选择 对应的用户  将  激活  选项的√号去掉即可。