先言:人类很早时期就通过写信的方式实现不同地区间的通信 在进入到21世纪后,邮件的作用显得更为重要 ,互联网的出现极大的减小了收信时间,让人们几乎达到可以实时对话,那么是如何搭建一个邮件服务器让人们使用呢 在linux中是通过postfix来实现的

实验准备:关闭SELinux,配置yum源 配置IP地址

实验环境:RHEL5.5

实验所用机器最少三台 其中有一台充当router用于转发不同网段的数据包

实验拓扑图如下

image

router的IP配置如下

image

echo 1 > /proc/sys/net/ipv4/ip_forward  开启网卡转发功能

配置DNS

安装DNS服务

yum –y install bind-*

echo “” > /etc/resolv.conf  DNS的指向为空

vim /var/named/chroot/etc/named.conf   新建一个配置文件

options {
        directory       "/var/named";
};
        zone    "sina.com"       {
        type    master;
        file    "sina.com.zone";

};
        zone    "yahoo.com"     {
        type    master;
        file    "yahoo.com.zone";
};

cp /usr/share/doc/bind-9.3.6/sample/var/named/localhost.zone /var/named/chroot/var/named/yahoo.com.zone

cp /usr/share/doc/bind-9.3.6/sample/var/named/localhost.zone /var/named/chroot/var/named/sina.com.zone   copy模板文件到区域文件

cd /var/named/chroot/var/named/

vim yahoo.com.zone

image

vim sina.com.zone

image

重启服务  service named restart

测试

image

OK 解析成功

sina 机器上的配置

1.设置解析文件

vi /etc/resolv.conf

nameserver 192.168.1.1

host mail.sina.com   解析主机地址

image

如果解析不成功建议添加一条路由记录

route add -net 192.168.2.0/24 gw 192.168.1.1  到达的目标地址 网关

2. 关闭sendmial服务

service sendmail stop

chkconfig sendmail off

3. 安装postfix  发送邮件

yum –y install postfix

vim /etc/postfix/main.cf

myhostname = mail.sina.com
mydomain = sina.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname,$mydomain
mynetworks = 192.168.1.0/24, 192.168.2.0, 127.0.0.0/8 邮件服务器的网段
relay domains = sina.com, yahoo.com 设置可以转发哪些网域的邮件
在配置文件的末尾加上

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous

保存退出

vim /etc/sysconfig/saslauthd  修改saslauthd服务的配置文件
修改 MECH=shadow

退出
建立一个用户sina 然后为用户设置密码

useradd sina

passwd sina
启动saslauthd服务
/etc/init.d/saslauthd restart
chkconfig saslauthd on
测试命令
testsaslauthd -u sina -p 'abc-123'

如果返回OK Success则表示saslauthd服务已经成功工作

service postfix restart 重启postfix服务

测试postfix

image

返回250代码则说明postfix已经配置成功

4 安装dovecot服务  接收邮件

yum -y install dovecot
修改配置文件
vi /etc/dovecot.conf

要修改的有两个地方

image

第20行中设置协议是pop3和pop3s协议

在第35行中去掉注释 监听POP3端口 注意这里一定要顶格写 包括38行的}也是定行写 不然linux读取这里会先读取空格然后再读取其他的配置

service dovecot restart 重启服务

chkconfig dovecot on

修改postfix主配文件

大约在456行位置 找到

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp  去掉这一行的注释 使之关联起来

yum -y install cyrus-imapd cyrus-imapd-devel

cat /etc/passwd 文件

image

可以看到有一个cyrus的用户

设置cyrus的密码

passwd cyrus

重启服务
/etc/init.d/cyrus-imapd restart
chkconfig cyrus-imapd on

链接到后台
cyradm  -u  cyrus localhost

image

建立一个sina的邮箱用户

然后quit退出

5 安装webmail

yum -y install squirrelmail

运行PHP设置工具
/usr/share/squirrelmail/config/conf.pl

1)在command中输入2 服务器设置

再依次输入数字符1 3 修改配置

image

r返回 然后输入A-------8 改为Cyrus

 image

r返回 然后输入4 General Options 再选5 将值修改为true      #忽略字母大小写

image

r返回 然后输入D  Set pre-defined settings for specific IMAP server

IMAP Server为: cyrus

image

s保存 q退出 然后启动httpd服务 service httpd restart

如果没有安装的话就安装httpd服务 yum –y install http-*

打开浏览器输入 http://mail.sina.com/webmail/

image

登录后

image

给自己发邮件测试

image

OK测试成功

这时再配置yahoo这台机器

1.设置解析文件

vi /etc/resolv.conf

nameserver 192.168.2.1

从第二步开始都和sina机器配置一样 唯一不同的在于建立的邮箱用户名 这里我们在yahoo的机器上配置一个yahoo的邮箱用户

image

登录后给sina这个用户发一封邮件

image

这时再看sina这个邮箱有没有收到邮件

image

sina再给yahoo回一个试试

image

在到yahoo查看邮件

image

收到了回复 实验成功 OK 这里有一个弊端 每新建一个邮箱用户就在服务器上新建一个用户名 下次要完善虚拟用户 各位请多多指教