邮件服务相关
MUA:邮件用户代理; 指的就是如Foxmail,outlook,等邮件客户端程序。
MDA(Mail Delivery Agent):“邮件投递代理”主要的功能就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA。如果信件的流向是到本机,这个邮件代理的功能就不只是将由MTA传来的邮件放置到每个用户的收件箱,它还可以具有邮件过滤(filtering)与其他相关功能
MTA(Mail Transfer Agent):MUA是用在Client端的软件,而MTA是用在邮件主机上的软件,它也是主要的邮件服务器。MTA就是“邮件传送代理”的意思,既然是 “传送代理”,那么用户寄信与收信时,都找MTA就对了!因为它负责帮用户传送。基本上,MTA的功能如下。
接收外部主机寄来的信件:既然是邮件主机,接收信件自然是主要功能,只要这个信件里有MTA内部账号,这封信就会被MTA收下来;
帮用户发(寄出)信:既然可以收信,自然也可以发信,只要用户具有合法的使用MTA的权力,就可以利用这台MTA主机把信传送出去!不过要注意,MTA会将信件送给目的地的MTA而不是目的地的MUA。不要搞错了!
====================================
一封邮件投 递过程:(很形象吧 !)
一人使用MUA发一封邮件给xx@yy.com;MUA首先连接邮件提供商的MTA,认证通过后,MDA开始判断这个邮件将投递到哪里?如果是本域,则将该邮件投递到本域用户的收件夹,如果是另外一个邮件域,则将其投递到对方的MTA上,最终xx@yy.com使用MUA收取这封邮件。
在了解了电子邮件服务工作的原理之后,我们就一起来搭建sendmail服务器器。
系统是RedHat Enterprise Linux5.5.
在搭建之前先来了解一下sendmail服务器架设之中涉及到的各种文件以及文件夹和位置
sendmail.cf:sendmail核心配置文件,位于/etc/mail/sendmail/sendmail.cf
sendmail.mc:sendmail提供sendmail文件模板,通过编辑此文件后再使用m4工具将结果导入sendmail.cf完成配置sendmail核心配置文件,降低配置复杂度,位于/etc/mail/sendmail.mc
local-host-name:定义收发邮件服务器的域名和主机别名,位于/etc/mail/local-host-name
access.db:用来设置sendmail服务器为哪些主机进行转发邮件,位于/etc/mail/access.db
aliases.db:用来定义邮箱别名,位于/etc/mail/aliases.db
virtusertable.db:用来设置虚拟账户,位于/etc/mail/virtusertable.db
知道了这些东西之后我们就来以一个实例讲解Linux下Sendmail服务器的搭建
项目案例: (同一局域网中同一域名)
如上图:局域网网段:192.168.16.0/24
域名: zhaoyuqiang.com
DNS及Sendmail服务器地址:192.168.16.1
Sendmail服务器和DNS是密不可分的。我们这唉配置Sendmail之前需要先配置好DNS的相关服务
(DNS的配置请参考http://zhaoyuqiang.blog.51cto.com/6328846/1199421)
一:配置DNS服务器
(此部分简写,不会的请参考http://zhaoyuqiang.blog.51cto.com/6328846/1199421)
1. 安装DNS包
2.启动服务器器
3.编辑修改named.conf文件
3.配置主配文件
4.配置zhaoyuqiang.com正向区域文件
5.配置zhaoyuqiang.com反向区域文件
6.重新启动DNS服务器
配置好DNS后要更改一个地方,如下
键入命令 : vim /etc/resolv.conf
二:安装Sendmail软件包
(从此部分开始配置Sendmail服务器)
先来看一下Sendmail服务器用到的安装包
sendmail-8.13.8-2.el5.i386.rpm:sendmail服务的主程序包,服务器端必须安装该软件包。
sendmail-cf-8.13.8-2.el5.i386.rpm:sendmail宏文件包
sendmail-devel-8.13.8-2.el5.i386.rpm:sendmail服务器开发工具软件包
sendmail-doc-8.13.8-2.el5.i386.rpm:sendmail服务器的说明文档
m4-1.4.5-3.el5.1.i386.rpm:宏处理过虑软件包
dovecot-1.0-1.2.rc15.el5.i386.rpm:接收邮件软件包,安装时需要注意安装顺序
sendmail-8.13.8-2.el5.i386.rpm这个包是默认安装的,我们只需要安装sendmail-cf-8.13.8-2.el5.i386.rpm这个包就可以了
三:编辑sendmail.mc
配置邮件服务器需要更改IP地址为0.0.0.0,这样可以扩大侦听范围(一般都是这样设置的),如果侦听范围小了,邮件服务器是无法正常发送邮件的。
进入之后将第116行的smtp侦听范围从127.0.0.1改成0.0.0.0
将第155行修改成自己的域: zhaoyuqiang.com
修改完成后使用m4工具重定向到sendmail.cf文件。(Sendmail.cf 是核心配置文件,但是这个文件的内容看不懂,是天书。所以用修改Sendmail.mc文件来修改Sendmail.cf文件,然后用m4工具重定向到Sendmail.cf,这样就OK了)
四:修改local-host-names文件添加域名和主机名
Sendmail服务器配置到这个地方基本就完成了,可以完成邮件的发送的工作,之后,我们需要接受邮件。 用到了POP3协议,需要安装Dovecot包。
五:安装Dovecot软件包(POP3接受)
注意包之间的依赖关系
六:配置服务器的IP地址
七:重启各种服务器
八:测试端口
在配置完所有的东西之后我们就需要测试一下了,但是我们先来测试一下端口是否都已经侦听了。
验证Sendmail的SMTP认证功能
25、110和143号端口的确都已经打开了 ,之后就我们的测试了。
测试:(telnet登录服务器,并发送和接受邮件)
限于设备的原因,我们这儿的测试就用telnet登录服务器来测试一下。既然用到了telnet,我们就要安装telnet服务器。
安装好之后,我们需要启动Telnet服务。
在激活Telnet服务之前,先做两件事:如下
启动服务器
弄好telnet之后,查看一下23号端口是否打开。
现在服务器都正常了,还缺少的是用户,既然我们要测试,少不了要两个用户了。那就来创建用户吧 顺便给用户添加一个密码。
用户创建好后就来测试吧!
发送邮件
发送完之后,我们看看liuqi同学能否接受到来自songtianpeng同学的信件。
哈哈 我们的liuqi童鞋确实是受到信件。
整个服务器就搭建完了。
需要注意的是:配置文件要仔细写 ,要重新启动各种服务器。