Sendmail邮件服务器详解和搭建

一、邮件服务器简介

邮件服务器是由邮件用户代理(MUA)、邮件递送代理(MDA)和邮件传输代理(MTA)组成,常见的MDA通常和MUA合二为一。

1MUA

邮件用户代理是一种客户端软件,它提供用户读取、编辑、回复及处理电子邮件等功能,一般常用的MUA程序包括Linux下的mailxelmevolutionmh等,以及Windows下常用的Outlook ExpressFoxmail等。

2MDA

邮件递送代理是一种服务器端运行的软件,用来把MTA所接受的邮件传递到指定用户邮箱。

3MTA

邮件传输代理是一种服务器端运行的软件,即邮件服务器。用户通过MUA发送和接收电子邮件其实都是通过MTA完成的。在Linux中应用最广泛的MTA程序有SendmailQmailextmailPostfix等。

关于MUAMTA的邮件传送流程图如下图1所示。

Sendmail邮件服务器详解和搭建_第1张图片


图1 邮件传送流程图

二、邮件服务器的工作流程

用户可以自由收发电子邮件,邮件系统会按照用户的指令完成一系列的发送、接受操作。可以根据需要选择不同的E-mail工作方式,决定是在同一台服务器上发送Email,即单一服务器方式,还是通过网络将邮件发送到其它邮件服务器,及多服务器方式,而多服务器方式需要设置邮件中继。邮件系统工作流程如下图2所示。

Sendmail邮件服务器详解和搭建_第2张图片

邮件系统工作流程图

三、sendmail邮件服务器搭建

在安装Sendmail服务器之前,首先要考虑是否已安装和配置好DNS服务。因为Sendmail中的邮件交换记录MX是在DNS服务器的区域文件中添加的,所以如果没有安装和配置好DNS服务,要先安装和配置DNS服务。

1DNS服务器搭建

Step1:修改yum配置文件

[root@server ~]# cd /etc/yum.repos.d/

[root@server yum.repos.d]# vim rhel-debuginfo.repo

Sendmail邮件服务器详解和搭建_第3张图片 

Step2:安装DNS服务安装包

[root@server ~]# mount /dev/cdrom /media/cdrom/

[root@server ~]# cd /media/cdrom/Server/

//安装bind安装包

[root@server Server]# yum install bind-9.3.6-4.P1.el5.i386.rpm  bind-chroot-9.3.6-4.P1.el5.i386.rpm 

//因为这里使用的是RedHat5系列,所以安装一个服务启动相关工具

[root@server Server]# yum install caching-nameserver-9.3.6-4.P1.el5.i386.rpm 

//启动bind服务

[root@server ~]# service named start

Starting named:                                            [  OK  ]

//查看端口号是否开启

[root@server ~]# netstat -tupln |grep named

Step3:编辑配置DNS服务文件

[root@server ~]# cd /var/named/chroot/etc/

//改变配置文件的目录

[root@server etc]# mv  named.caching-nameserver.conf named.conf

[root@server etc]# vim named.conf

Sendmail邮件服务器详解和搭建_第4张图片 

//编辑区域文件

[root@server etc]# vim named.rfc1912.zones

Sendmail邮件服务器详解和搭建_第5张图片 

//编辑区域配置文件

[root@server ~]# cd /var/named/chroot/var/named/

//产生区域配置文件

[root@server named]# cp -p localdomain.zone abc.com.zone

Sendmail邮件服务器详解和搭建_第6张图片 

// 重新启动服务

[root@server named]# service named restart

//测试DNS服务如下

Sendmail邮件服务器详解和搭建_第7张图片 

2sendmail邮件服务器搭建

Step1:安装sendmail

[root@server ~]# cd /media/cdrom/Server/

[root@server Server]# ll |grep send mail

[root@server Server]# yum install sendmail-8.13.8-2.el5.i386.rpm 

//启动sendmail服务

[root@server Server]# service sendmail start

//查看端口是否启动

[root@server Server]# netstat -tupln |grep sendmail

Step2:编辑sendmail配置文件

//编辑邮件服务的监听地址

[root@server mail]# vim sendmail.mc 

wKiom1PJFdXipAkRAACcRFNoq3s826.jpg 

//添加主机别名

[root@server mail]# vim local-host-names

wKiom1PJFemj5j01AAC5ZasgoG0482.jpg 

//进行编辑中继

[root@server mail]# vim access

Sendmail邮件服务器详解和搭建_第8张图片 

//重新启动sendmail服务

[root@server mail]# service sendmail restart

Step3:测试监听端口是否改正

//使用telnet连接192.168.2.101

[root@server ~]# telnet 192.168.2.101 25

Trying 192.168.2.101...

telnet: connect to address 192.168.2.101: Connection refused

telnet: Unable to connect to remote host: Connection refused

//显示被拒绝,原因是因为你修改的是sendmail.mc,如果使sendmail.cf同步则还需安装一个组件sendmail-cf

[root@server Server]# yum install sendmail-cf-8.13.8-2.el5.i386.rpm 

[root@server mail]# service sendmail restart

//安装完后重新测试

[root@server ~]# telnet 192.168.2.101 25

Trying 192.168.2.101...

Connected to 192.168.2.101 (192.168.2.101).

Escape character is '^]'.

220 server ESMTP Sendmail 8.13.8/8.13.8; Fri, 18 Jul 2014 15:32:56 +0800

helo mail.abc.com

250 server Hello [192.168.2.101], pleased to meet you

mail from:[email protected]

250 2.1.0 [email protected]... Sender ok

rcpt to:[email protected]

.............................................

如果不知道怎么使用,可以使用help命令

 

Step4:到邮件客户端上创建账号

进入windows然后打开outlook express,然后输入用户名和用户邮箱,然后点击下一步出现以下对话框

Sendmail邮件服务器详解和搭建_第9张图片 

填写完接收邮件服务器和发送邮件服务器后点击以下,如下所示:

Sendmail邮件服务器详解和搭建_第10张图片 

然后输入密码,然后点击下一步完成。

Step5:发送邮件

然后user1自己给自己发送信测试

Sendmail邮件服务器详解和搭建_第11张图片 

然后就可以在收件箱中看到所发的信息了。