Sendmail邮件服务器详解和搭建
一、邮件服务器简介
邮件服务器是由邮件用户代理(MUA)、邮件递送代理(MDA)和邮件传输代理(MTA)组成,常见的MDA通常和MUA合二为一。
1.MUA
邮件用户代理是一种客户端软件,它提供用户读取、编辑、回复及处理电子邮件等功能,一般常用的MUA程序包括Linux下的mailx、elm、evolution和mh等,以及Windows下常用的Outlook Express、Foxmail等。
2.MDA
邮件递送代理是一种服务器端运行的软件,用来把MTA所接受的邮件传递到指定用户邮箱。
3.MTA
邮件传输代理是一种服务器端运行的软件,即邮件服务器。用户通过MUA发送和接收电子邮件其实都是通过MTA完成的。在Linux中应用最广泛的MTA程序有Sendmail、Qmail、extmail和Postfix等。
关于MUA和MTA的邮件传送流程图如下图1所示。
图1 邮件传送流程图
二、邮件服务器的工作流程
用户可以自由收发电子邮件,邮件系统会按照用户的指令完成一系列的发送、接受操作。可以根据需要选择不同的E-mail工作方式,决定是在同一台服务器上发送Email,即单一服务器方式,还是通过网络将邮件发送到其它邮件服务器,及多服务器方式,而多服务器方式需要设置邮件中继。邮件系统工作流程如下图2所示。
图2 邮件系统工作流程图
三、sendmail邮件服务器搭建
在安装Sendmail服务器之前,首先要考虑是否已安装和配置好DNS服务。因为Sendmail中的邮件交换记录MX是在DNS服务器的区域文件中添加的,所以如果没有安装和配置好DNS服务,要先安装和配置DNS服务。
1、DNS服务器搭建
Step1:修改yum配置文件
[root@server ~]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# vim rhel-debuginfo.repo
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
//编辑区域文件
[root@server etc]# vim named.rfc1912.zones
//编辑区域配置文件
[root@server ~]# cd /var/named/chroot/var/named/
//产生区域配置文件
[root@server named]# cp -p localdomain.zone abc.com.zone
// 重新启动服务
[root@server named]# service named restart
//测试DNS服务如下
2、sendmail邮件服务器搭建
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
//添加主机别名
[root@server mail]# vim local-host-names
//进行编辑中继
[root@server mail]# vim access
//重新启动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,然后输入用户名和用户邮箱,然后点击下一步出现以下对话框
填写完接收邮件服务器和发送邮件服务器后点击以下,如下所示:
然后输入密码,然后点击下一步完成。
Step5:发送邮件
然后user1自己给自己发送信测试
然后就可以在收件箱中看到所发的信息了。