邮件服务器之Webmail

此服务在centos6.5上构建
确保DNS服务已经为邮件应用配置完成
这里写图片描述
这里写图片描述
这里写图片描述
确保开发库和开发工具都已安装,centos6与RH5开发库命名有所不同
Server Platform Development 服务器平台开发库
Desktop Platform客户端开发库
邮件服务器之Webmail_第1张图片
邮件用户创建完成
这里写图片描述
RHEL自身的提供的rpm包:
头文件:/usr/include/
库文件:/lib, /usr/lib
第三方的rpm包:
安装路径通常在/usr/local, /opt
相应头文件和库文件会有所改变
头文件:/usr/include, /usr/local/include
库文件:/usr/local/lib不会被系统查找到,在编译安装时很可能会报错
可编辑/etc/ld.so.conf或者在/etc/ld.so.conf.d/目录下创建local.conf将依赖的库文件路径写入其中,然后执行ldconfig
邮件服务器之Webmail_第2张图片
八、安装Courier authentication library
1、courier简介
courier-authlib是Courier组件中的认证库,它是courier组件中一个独立的子项目,用于为Courier的其它组件提供认证服务。其认证功能通常包括验正登录时的帐号和密码、获取一个帐号相关的家目录或邮件目录等信息、改变帐号的密码等。而其认证的实现方式也包括基于PAM通过/etc/passwd和/etc/shadow进行认证,基于GDBM或DB进行认证,基于LDAP/MySQL/PostgreSQL进行认证等。因此,courier-authlib也常用来与courier之外的其它邮件组件(如postfix)整合为其提供认证服务。
2、安装
邮件服务器之Webmail_第3张图片
接下来开始编译安装
这里写图片描述

#./configure \
    --prefix=/usr/local/courier-authlib \
    --sysconfdir=/etc \
    --without-authpam \
    --without-authshadow \
    --without-authvchkpw \
    --without-authpgsql \
--with-authmysql \
基于mysql认证
--with-mysql-libs=/usr/local/mysql /lib \
编译安装mysql的lib路径
--with-mysql-includes=/usr/local/mysql/include \
mysql头文件路径
--with-redhat \
可根据RedHat系统自身特性实现自我优化
--with-authmysqlrc=/etc/authmysqlrc \
定义了服务器进程courier-authilb基于mysql实现用户认证的配置文件
    --with-authdaemonrc=/etc/authdaemonrc \
    守护进程配置文件
--with-mailuser=postfix \
邮件收发管理的用户和组
    --with-mailgroup=postfix \

这里会报错,提示Courier Unicode Library没有安装,下载courier-unicode-1.2并编译安装
邮件服务器之Webmail_第4张图片

[root@wms ~]#make && make install

再次编译安装courier-authlib就不会出现问题
邮件服务器之Webmail_第5张图片

[root@wms ~]#make && make install

这里写图片描述
备注:可以使用–with-authdaemonvar=/var/spool/authdaemon选项来改变进程套按字目录路径
邮件服务器之Webmail_第6张图片
这里写图片描述
修改/etc/authdaemonrc 文件
邮件服务器之Webmail_第7张图片
可暂时打开调试并且记录用户登录的密码,以便排错调试
这里写图片描述
3、配置其通过mysql进行邮件帐号认证
编辑/etc/authmysqlrc 为以下内容,其中2525,2525 为postfix 用户的UID和GID。
MYSQL_SERVER localhost
MYSQL_PORT 3306 (指定你的mysql监听的端口,这里使用默认的3306)
MYSQL_USERNAME extmail (这时为后文要用的数据库的所有者的用户名)
MYSQL_PASSWORD extmail (密码跟用户名都默认为extmail,与后面extmail默认配置保持一致,在生产环境中要改)
邮件服务器之Webmail_第8张图片
为postfix提供虚拟用户的数据库,由extmail自动创建
这里写图片描述
用户账号存储表,由extman自动生成
这里写图片描述
存储用户密码的字段
这里写图片描述
邮件服务器运行者用户账号的UID,GID
这里写图片描述
存储用户账号的字段,extman自动生成的默认字段名
这里写图片描述
mysql中用户账号的家目录
这里写图片描述
Concat是mysql的内置函数,连接dir与后面的homedir变量,意思为
/var/mailbox/usrname
在生产环境中单独做一个分区或者逻辑卷挂载到某个路径下作为用户的邮箱路径
虚拟用户没有homedir,maildir与homedir指向同一个路径
这里写图片描述
这里写图片描述
4、提供SysV服务脚本
这里写图片描述
这里写图片描述
启动服务
邮件服务器之Webmail_第9张图片
5、配置postfix和courier-authlib
新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:
这里写图片描述
接下来重新配置SMTP 认证,编辑 /usr/lib/sasl2/smtpd.conf ,确保其为以下内容:

[root@wms ~]# vim/usr/lib/sasl2/smtpd.conf

这里写图片描述
九、让postfix支持虚拟域和虚拟用户
1、编辑/etc/postfix/main.cf,添加如下内容:

virtual_mailbox_base = /var/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

配置文件:定义需要查询用户账号时如何使用select语句到mysql中查询信息

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_transport = virtual指明MDA

邮件服务器之Webmail_第10张图片
2、使用extman源码目录下docs目录中的extmail.sql和init.sql建立数据库:
这里写图片描述
解决方法
这里写图片描述
邮件服务器之Webmail_第11张图片

[root@wms docs]# vim extmail.sql 

这里写图片描述
这里写图片描述
出错,解决如下
对于MySQL-5.1以后版本,其中的服务脚本extmail.sql执行会有语法错误;可先使用如下命令修改extmail.sql配置文件,而后再执行。修改方法如下:
这里写图片描述

[root@wms docs]# vim /etc/my.cnf 

这里写图片描述
mysql模式开启存储引擎启用严格模式,非法数据值被拒绝将配置文件的
STRICT_TRANS_TABLES删掉,即改为
这里写图片描述
配置文件/usr/local/mysqlmy.cnf 也需要修改,才能插入成功,mysql读取配置文件的次序和生效规则在编译MySQL中已经阐述,这里不再解释
这里写图片描述
邮件服务器之Webmail_第12张图片
将/root/postfix/extman-1.1/docs目录下的所有mysql开头的文件全部复制到/etc/postfix 目录下:这里提供了虚拟域所需的配置文件
这里写图片描述
3、授予用户extmail访问extmail数据库的权限
这里写图片描述
这里写图片描述
4.取消中心域,即注释掉myhostname, mydestination, mydomain, myorigin几个指令;启用虚拟域,重启服务
这里写图片描述
十、配置dovecot
Dovecot是一个安全性较好的POP3/IMAP服务器软件,响应速度快而且扩展性好。Dovecot默认也使用Linux的系统用户,并通过PAM(Pluggable Authentication Module,可插拔认证模块)机制进行身份认证,只有通过认证后才允许用户收取邮件。
1.编译安装Dovecot软件包
预先创建运行用户
这里写图片描述
源码编译安装
这里写图片描述
这里写图片描述
邮件服务器之Webmail_第13张图片
注:在编译安装之前,先确认pam-devel包是否安装。如果没有安装,必须先安装成功后,然后再配置。
这里写图片描述
添加为系统服务dovecot
这里写图片描述
2. 建立配置文件,并启动服务
Dovecot的配置文件位于/etc/dovecot/目录下,主配置文件为dovecot.conf,默认并没有此文件,需要参考样例目录重新创建。为了方便以后的扩展配置,建议将各种样例配置文件都复制到/etc/dovecot/目录下。
这里写图片描述
调整主配置文件
这里写图片描述
启动dovecot服务,并确认监听状态
这里写图片描述
Dovecot默认已配置为监听POP3/IMAP邮件协议,因此启动dovecot服务后,可以查看对TCP端口143、110的监听。
邮件服务器之Webmail_第14张图片
此次dovecot的版本为:dovecot-2.2.18.tar.gz。不支持yum安装rpm的修改方式:具体的修改如下:1.在dovecot安装的配置文件的目录下有conf.d这一目录。打开conf.d这个目录中的auth-sql.conf.ext文件会发现如下结果
这里写图片描述

[root@wms ~]# vim /etc/dovecot/dovecot.conf

邮件服务器之Webmail_第15张图片
这里写图片描述
这个文件中的内容基本不需要修改,需要修改的话修改文件dovecot-sql.conf.ext的路径。在dovecot配置文件所在的目录下有这一文件dovecot-sql.conf.ext。打开此文件,进行修改如下:

[root@wms conf.d]# vim auth-sql.conf.ext 

邮件服务器之Webmail_第16张图片
default_pass_scheme = CRYPT 默认加密方式
说明:使用通用二进制格式安装的MySQL,其soc文件位置为/tmp/mysql.sock,相应地,connect定义应根据实际情况改变
2.修改dovecot的主配置文件dovecot.conf
这里写图片描述
%d%n是dovecot支持的两个宏,分别表示域名和用户名
这里写图片描述
接下来启动dovecot服务:
这里写图片描述
这里写图片描述
十一、安装Extmail-1.2
依赖关系的解决:extmail将会用到perl的Unix::syslogd功能,可以去http://search.cpan.org搜索下载原码包进行安装。
邮件服务器之Webmail_第17张图片
说明:如果extmail的放置路径做了修改,那么配置文件webmail.cf中的/var/www路径必须修改为你所需要的位置。本文使用了默认的/var/www,所以,以下示例中并没有包含路径修改的相关内容。
1、安装
这里写图片描述
这里写图片描述
这里写图片描述
2、修改主配置文件

[root@wms ~]#vi /var/www/extsuite/extmail/webmail.cf

邮件服务器之Webmail_第18张图片
部分修改选项的说明:
SYS_MESSAGE_SIZE_LIMIT = 5242880
用户可以发送的最大邮件
SYS_USER_LANG = en_US
语言选项,可改作:
SYS_USER_LANG = zh_CN
SYS_MAILDIR_BASE = /home/domains
此处即前文所设置的用户邮件的存放目录,可改作:
SYS_MAILDIR_BASE = /var/mailbox

SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为:
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail

SYS_MYSQL_HOST = localhost
指明数据库服务器主机名,这里默认即可
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即可

SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
此句用来指明authdaemo socket文件的位置,这里修改为:
SYS_AUTHLIB_SOCKET=/usr/local/courier-authlib/var/spool/authdaemon/socket
3、apache相关配置
邮件服务器之Webmail_第19张图片
由于extmail要进行本地邮件的投递操作,故必须将运行apache服务器用户的身份修改为邮件投递代理的用户;此例中的MDA为postfix自带,因此将指定为postfix用户:
这里写图片描述
邮件服务器之Webmail_第20张图片
修改 cgi执行文件属主为apache运行身份用户:
这里写图片描述
5、启动apache服务
邮件服务器之Webmail_第21张图片
十二、安装Extman-1.1
修改配置文件以符合本例的需要:
这里写图片描述
此处即为前文所设置的用户邮件的存放目录,可改作:
这里写图片描述
修改SYS_CAPTCHA_ON = 1为
这里写图片描述
此两处后面设定的ID号需更改为前而创建的postfix用户和postfix组的id号,本文使用的是2525,因此,上述两项需要修改为:
这里写图片描述
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
可修改为:
这里写图片描述
在生产环境中不建议使用extmail,这里保留默认并新建用户webman并给以全部权限
这里写图片描述
这里写图片描述
在生产环境中不建议使用extmail,这里保留默认并新建用户webman并给以全部权限
而后修改cgi目录的属主:
这里写图片描述
在apache的主配置文件中Extmail的虚拟主机部分,添加如下两行:
这里写图片描述
创建其运行时所需的临时目录,并修改其相应的权限:
这里写图片描述
好了,到此为止,重新启动apache服务器后,Webmail和Extman已经可以使用了,可以在浏览器中输入指定的虚拟主机的名称进行访问,如下:
邮件服务器之Webmail_第22张图片
这里写图片描述
选择管理即可登入extman进行后台管理了。默认管理帐号为:[email protected] 密码为:extmail*123*
邮件服务器之Webmail_第23张图片
邮件服务器之Webmail_第24张图片
邮件服务器之Webmail_第25张图片
邮件服务器之Webmail_第26张图片
邮件服务器之Webmail_第27张图片
邮件服务器之Webmail_第28张图片
这里写图片描述
邮件服务器之Webmail_第29张图片
Outlook Express测试
邮件服务器之Webmail_第30张图片

邮件服务器之Webmail_第31张图片

邮件服务器之Webmail_第32张图片

邮件服务器之Webmail_第33张图片

邮件服务器之Webmail_第34张图片
这里写图片描述
测试Dovecot能否接收从Outlook Express发送过来的邮件
邮件服务器之Webmail_第35张图片
邮件服务器之Webmail_第36张图片
这里写图片描述
测试mutt能否正常接收邮件
这里写图片描述
邮件服务器之Webmail_第37张图片
邮件服务器之Webmail_第38张图片

你可能感兴趣的:(Servers,Framework)