Username: Password:

企业Sendmail邮件服务器的创建(1)
来源:itbulo.com   作者:itbulo.com   发布时间:2008-01-29 11:01:45

人们在Internet上最常使用的就是电子邮件,很多企业用户也经常使用电子邮件系统。在Unix系统中,Sendmail是应用最广的电子邮件服务器。本文将比较周详地介绍怎样建立一个Sendmail电子邮件服务器,以满足企业的基本需求。

一、Sendmail的工作模式

Sendmail是最重要的邮件传输代理程式。理解电子邮件的工作模式是很重要的。一般情况下,电子邮件系统可分为用户代理、传输代理和投递代理几个部分。用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如Outlook Express和Foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如Procmail。

当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给他。信件传输代理得到了邮件后,首先将他保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程式将找到应该对这个目标地址负责的邮件传输代理服务器,再通过网络将邮件传送给他。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。

显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。能够看到,一个邮件传输代理的主要工作是监控用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或 提交给最终投递程式。 有许多程式能够作为信件传输代理。在Unix系统中,Sendmail是其中应用最广泛的一个,他是个免费软件,能够支持数千甚至更多的用户,而且占用的系统资源相当少。但是,Sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如Qmail或Postfix等等。

当Sendmail程式得到一封待发送的邮件的时候,他需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@linuxaid.com.cn,那么Sendmail首先确定这个地址是用户名(ideal)+机器名(linuxaid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。

DNS数据中,和电子邮件相关的是信件交换(Message eXchange,MX)记录,例如在linuxaid.com.cn这个域的dns数据文档中有如下配置:

IN MX 10 mail

IN MX 20 mail1

mail IN A 202.99.11.120

mail1 IN A 202.99.11.121

显然,在DNS中说明linuxaid.com.cn有2个MX服务器,于是,Sendmail试图将邮件发送给两者之一。一般来说,排在前面的MX服务器的优先级别比较高,因此服务器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给他。假如成功,SMTP服务器的任务就完成了。在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般情况下,MX服务器会自动把信件内容转交给目标主机。但是,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或不执行SMTP服务,而是由其MX服务器来执行信件的管理,这时候,最终的信件将保存在MX机器上,直到用户来查看他。

假如DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么Sendmail将试图直接和来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cn,DNS中没有对应的MX记录,因此Sendmail在确定MX服务器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。
 

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅