sendmail在企业网中的应用(上)

一:sendmail概述:

Sendmail是目前使用最为广泛的一种E-mail服务器,是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器, 并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。

二:sendmail与dns:

电子邮件(email)服务器与DNS系统是始终分不开的,如果你要发电子邮件,就得通过邮件(email)服务器帮你将信件送出去。由于IP地址相对难以记忆,因此我们要有域名与IP地址的对应,这就是DNS系统,因此在收发电子邮件的过程中要用到DNS系统域名解析。DNS数据中,与电子邮件相关的是MX记录。一般来说,排在前面的的MX服务器的优先级别比较高由于MX后可以接数字,因此,一个域名或一台主机可以有多个MX记录,这样就起到了冗余功能,当一台邮件服务器出现问题时,由于有多个MX记录,因此信件不会被直接退回,而是转到下一个设置MX记录的主机并暂存在该处,等主要邮件服务器恢复正常之后,这个设置MX记录的主机将会把邮件传送到目的地,如此就起到了异地救援作用。

三:邮件系统结构:

MUA(mail user agent)邮件用户代理:MUA是一个邮件系统的客户端程序,提供阅读、发送和接收电子邮件的用户接口,MUA是邮件系统中与用户直接交互的程序。在windows下,常用的有microsoft的outlook,国产的foxmail,在linux下有evolution以及firefox等软件包。

MTA(mail submission agent)邮件传输代理:邮件传输代理负责邮件的存储和转发,MTA监视用户请求,根据电子邮件的目标地址找到对应的电子邮件服务器。在linux下常用 的MTA有sendmail(速度较慢)以及postfix(速度较快)等。

MDA(mail delivery agent)邮件投递代理:主要的功能是将MTA接收的信件依照信件的流向放置到本地账户下的邮件文件中,或者再经由MTA将信件送到下一个MTA。在linux下常用的MDA有mail.local、promail等。

MAA(mail access agent)邮件访问代理:MAA用户将用户连接到系统邮件库,使用pop或者imap协议接收邮件。linux下常用的有dovecot软件包等

sendmail在企业网中的应用(上)

四:邮件系统所使用的协议:

SMTP:简单邮件传输协议:SMTP只负责电子邮件的传送,其使用的端口是25。他是目前internet上传输电子邮件的标准协议。

POP:邮局协议:有版本2和3,目前大多使用版本3。是接收电子邮件客户机和服务器之间的协议。客户端程序连接到服务器的端口号110.

IMAP:网际消息访问协议。目前版本为4。他提供方便的下载服务,支持pop协议所具有的全部功能。端口号是143.

sendmail在企业网中的应用(上) 

案例:在136.com域sendmail服务器上创建账户user1和user2,在sina.com域上创建user3和user4,实现这些用户间的邮件转发。

拓扑方案:

sendmail在企业网中的应用(上)

首先搭建163.com邮件服务器:

修改主机名:

[[email protected] ~]# vim /etc/sysconfig/network    #如图:

sendmail在企业网中的应用(上)

[[email protected] ~]# vim /etc/hosts

sendmail在企业网中的应用(上)

搭建dns服务器:

[[email protected] ~]# mkdir /mnt/cdrom

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# cd /var/named/chroot/etc/

[[email protected] etc]# cp -p named.caching-nameserver.conf named.conf

[[email protected] etc]# vim named.conf

sendmail在企业网中的应用(上)

[[email protected] etc]# vim named.rfc1912.zones

sendmail在企业网中的应用(上)

[[email protected] etc]# cd ../var/named/

[[email protected] named]# cp -p localhost.zone 163.com.db

[[email protected] named]# cp -p named.local 192.168.101.db

[[email protected] named]# vim 163.com.db

sendmail在企业网中的应用(上) 

[[email protected] named]# vim 192.168.101.db       #区域的声明文件是101.168.192.in-addr.arpa与sina.com的相同

sendmail在企业网中的应用(上)

[[email protected] named]# vim /etc/resolv.conf      #该sendmail服务器也是dns服务器,所以sendmail要dns解析,需要指向dns服务器,也即192.168.101.66

sendmail在企业网中的应用(上)

[[email protected] named]# service named start

[[email protected] named]# chkconfig named on        #开机启动dns服务器

[[email protected] named]# init 6      #重启该服务器

搭建sendmail(邮件发送服务器)

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

sendmail在企业网中的应用(上)

[[email protected] Server]# rpm -qa |grep sendmail   #查看sendmail已经安装过的包

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

[[email protected] Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm       #该软件包用于直接编辑sendmail.mc文件,不用编辑sendmail.cf文件

[[email protected] Server]# cd /etc/mail

[[email protected] mail]# vim sendmail.mc      #编辑sendmail的主配置文件

sendmail在企业网中的应用(上)

[[email protected] mail]# vim access       #编辑sendmail的中继文件

sendmail在企业网中的应用(上)

[[email protected] mail]# vim local-host-names

sendmail在企业网中的应用(上)

[[email protected] mail]# service sendmail restart      #重启sendmail服务器

搭建dovecot(邮件接收服务器)

[[email protected] mail]# vim /etc/yum.repos.d/rhel-debuginfo.repo        #编辑本地yum

sendmail在企业网中的应用(上)

[[email protected] mail]# cd /mnt/cdrom/Server/

[[email protected] Server]# yum install dovecot –y      #安装该软件包,用于接收邮件

[[email protected] Server]# rpm -ql dovecot |less      #查看dovecot的安装位置

[[email protected] Server]# vim /etc/dovecot.conf      #查看dovecot的配置文件,此处无需修改

sendmail在企业网中的应用(上)

[[email protected] Server]# service dovecot start     #启用dovecot服务器

[[email protected] Server]# chkconfig dovecot on     #开机自动启动

[[email protected] Server]# useradd user1 #在本地邮件服务器(163.com)上创建账户user1

[[email protected] Server]# passwd user1

[[email protected] Server]# useradd user2 #在本地邮件服务器(163.com)上创建账户user2

[[email protected] Server]# passwd user2

测试:使用windows xp主机自带的outlook express工具查看本地邮件服务器(163.com)是否可用:(本地的user1用户向user2发送邮件)

xp主机的ip参数

sendmail在企业网中的应用(上)

点击:开始——》程序——》outlook  express

使用同样的方法创建user2

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上) 

sendmail在企业网中的应用(上) 

sendmail在企业网中的应用(上)

user1向user2发送邮件:

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

user2向user1发送邮件:

sendmail在企业网中的应用(上) 

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上) 

测试成功!!!

搭建sina.com邮件服务器:

[[email protected] ~]# vim /etc/sysconfig/network

sendmail在企业网中的应用(上)

搭建dns服务器

[[email protected] ~]# mkdir /mnt/cdrom

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

[[email protected] Server]# cd /var/named/chroot/etc/

[[email protected] etc]# cp -p named.caching-nameserver.conf named.conf

sendmail在企业网中的应用(上)

[[email protected] etc]# vim named.rfc1912.zones

sendmail在企业网中的应用(上)

[[email protected] etc]# cd ../var/named/

[[email protected] named]# cp -p localhost.zone sina.com.db

[[email protected] named]# cp -p named.local 192.168.101.db

[[email protected] named]# vim sina.com.db

sendmail在企业网中的应用(上)

[[email protected] named]# vim 192.168.101.db      #区域的声明文件是101.168.192.in-addr.arpa与163.com的相同

sendmail在企业网中的应用(上)

[[email protected] named]# vim /etc/resolv.conf

sendmail在企业网中的应用(上)

[[email protected] named]# service named start

[[email protected] named]# chkconfig named on     #开机自动启动

[[email protected] ~]# init 6      #重启

搭建sendmail(邮件发送服务器):

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm #该软件包用于直接编辑sendmail.mc文件,不用编辑sendmail.cf文件

[[email protected] Server]# cd /etc/mail

[[email protected] mail]# vim sendmail.mc

sendmail在企业网中的应用(上)

[[email protected] mail]# vim access

sendmail在企业网中的应用(上)

[[email protected] mail]# vim local-host-names

sendmail在企业网中的应用(上)

[[email protected] mail]# service sendmail restart

[[email protected] mail]# chkconfig sendmail on

搭建dovecot服务器(邮件接收服务器):

[[email protected] Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo     #编辑本地yum

sendmail在企业网中的应用(上) 

[[email protected] Server]# yum install dovecot -y

[[email protected] Server]# service dovecot start

[[email protected] Server]# chkconfig dovecot on     #开机启动dovecot

[[email protected] Server]# useradd user3       #创建用户user3

[[email protected] Server]# passwd user3

[[email protected] Server]# useradd user4       #创建用户user4

[[email protected] Server]# passwd user4

测试:使用windows xp主机自带的outlook express工具查看本地邮件服务器(sina.com)是否可用:(本地的user3用户向user4发送邮件)

xp主机的ip参数

sendmail在企业网中的应用(上)

点击:开始——》程序——》outlook express

使用同样的方法创建user4,这里不再创建

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

user3给user4发送邮件:

 sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

user4向user3发送邮件:

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

sendmail在企业网中的应用(上)

测试成功!!!

现在测试163.com邮件服务器和sina.com邮件服务器能否进行邮件的转发:

配置windows server 2003作为163.com域的主机,xp主机作为sina.com域的主机

server 2003主机的ip参数:

sendmail在企业网中的应用(上)

xp 主机的ip参数:

sendmail在企业网中的应用(上)

在windows  server  2003上向xp发送邮件:

sendmail在企业网中的应用(上)

在xp主机上查看邮件接收情况:

sendmail在企业网中的应用(上)

在xp主机上向server 2003主机发送邮件:

sendmail在企业网中的应用(上)

在server 2003上查看邮件接收情况:

sendmail在企业网中的应用(上) 

测试成功!!!!!!

附:

上个案例中两台邮件服务器是处于同一网段中,一般两台邮件服务器很少处于同一网段中。如果要模拟两个不在同一网段中的邮件服务器(假设163.com邮件服务器的ip地址不变sina.com服务器地址为192.168.100.10),拓扑不用变动,只需在两个邮件服务器上做如下修改即可:

163.com域:

[[email protected] ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

[[email protected] ~]# route add default gw 192.168.100.10

sina.com域:

[[email protected] ~]# route add -net 192.168.101.0 netmask 255.255.255.0 dev eth0

[[email protected] ~]# route add default gw 192.168.101.66

 










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/986870,如需转载请自行联系原作者