在这篇博客中小编要实现一个基于虚拟账号的邮件系统,读者日常生活中所用到的邮件账号都是虚拟账号,并不是登陆系统的账户,这些虚拟的账号存储在数据库中集中管理,今天小编要实现如下工作流程的邮件系统
各部分的功能:
MUA:可以使用客户端软件或者浏览器进行收发邮件但是都要结合认证,要实现浏览器访问,服务器必须搭建相应的站点,这里就使用了extmail,extman作为管理工具(域和用户的管理)
MTA:发送信件,这里小编使用源码postfix实现(老版的不支持mysql扩展),美国服务器,当然这里还要结合简单认证安全层(sasl,使用cyrus-sasl实现)和courier-authlib才能够最终和mysql联系起来
MRA:接收信件,小编这里使用dovecot来实现
软件需求所需的源码包:courier-authlib-0.63.0.tar、extmail-1.2.tar、extman-1.1.tar、postfix-2.10.tar、Unix-Syslog-1.1.tar(源码包均来自互联网,如有需要可自行下载)
还需要系统自带的rpm包,这里可以使用yum安装
yum install -y mysql openssl-devel perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect
Step 1.网卡以及主机名参数设置# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.111.10
# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=mail.zzu.com
Step 2.搭建web服务器Apr安装
# tar -jxf apr-1.4.6.tar.bz2 -C /usr/local/src/
# cd /usr/local/src/apr-1.4.6/
# ./configure
# make && make install
Apr-util安装
# tar -jxf apr-util-1.5.2.tar.bz2 -C /usr/local/src/
# cd /usr/local/src/apr-util-1.5.2/
# ./configure --with-apr=/usr/local/src/apr-1.4.6/apr-1-config(加上apr的路径)
# make && make install
Pcre安装
# unzip pcre-8.32.zip
# cd pcre-8.32
# ./configure
# make && make install
安装apache
# tar -jxf httpd-2.4.4.tar.bz2 -C /usr/local/src/
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-pcre=/usr/local/pcre/
# make && make install
编写启动脚本
# vim httpd
#!/bin/bash
# chkconfig: 35 80 30
# description: Apache server
HTTPD='/usr/local/apache/bin/httpd'
LOCKFILE='/var/lock/subsys/httpd'
. /etc/init.d/functions
function start(){
[ -e $LOCKFILE ] && echo "httpd is running ......." && exit
echo -n "httpd is starting ......"
sleep 1
`$HTTPD -k start`
}
function stop(){
echo -n "httpd is stoping......"
sleep 1
killproc $HTTPD &>/dev/null
}
function status(){
[ -e $LOCKFILE ]&& echo "httpd is running ......" || echo "httpd is stoped"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "httpd Usage: {start|stop|restart}"
;;
esac
# cp httpd /etc/init.d/
# chmod a+x /etc/init.d/httpd
# chkconfig --add httpd
# chkconfig httpd on
# service httpd start
# groupadd mysql
# useradd -r -g mysql mysql
# cd /usr/local
# tar zxvf /path/to/mysql-VERSION-OS.tar.gz
# ln -s mysql-advanced-5.6.10-linux-glibc2.5-i686/ mysql
# cd mysql
# chown -R mysql .
# chgrp -R mysql .
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# cp support-files/my-default.cnf /etc/my.cnf
# bin/mysqld_safe --user=mysql &
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# ln –s /usr/local/mysql/lib /usr/lib/mysql
# ln -s /usr/local/mysql/include/ /usr/include/mysql
# vim /etc/bashrc //在文件最后加入下面的内容
export PATH=/usr/local/mysql/bin:$PATH
# . /etc/bashrc
启动mysql测试
# service mysqld start
# mysqladmin -u root password 123456 //修改初始密码
# mysql -u root –p
mysql> grant all on *.* to 'root'@'%' idenfied by '123456'; //赋予root用户最高权限
mysql> flush privileges; //刷新权限
Step 4.搭建DNS 服务器# yum install bind bind-chroot caching-nameserver –y
# cd /var/named/chroot/etc/
创建配置文件
# cp -p named.caching-nameserver.conf named.conf
# vim named.conf
# vim named.rfc1912.zones
# cd ../var/named/
添加域文件
# cp -p localhost.zone zzu.com.zone
# vim zzu.com.zone
# echo “nameserver 192.168.111.10” > /etc/resolv.conf //修改DNS指向
# chkconfig named on
启动DNS服务器
# service named start
之所以要使用源码安装是因为5.4自带的postfix不支持mysql的扩展啦
添加postfix用户
# groupadd -g 2525 postfix
# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
# groupadd -g 2526 postdrop
# useradd -g postdrop -u 2526 -s /bin/false -M postdrop
解压缩源码
# tar -zxvf postfix-2.10.0.tar.gz -C /usr/local/src/
# cd /usr/local/src/postfix-2.10.0/