网站运营
位置:首页>> 网站运营>> 用Linux作邮件服务器

用Linux作邮件服务器

 来源:中国站长站 发布时间:2008-07-28 17:30:00 

标签:

在Internet上,E-mail是用户之间交往沟通的最佳方式。通过电子邮件,可以为Linux系统开拓新的空间,增强与外界的联系。已经证明,电子邮件是Internet上使用最多的应用程序,甚至比WWW的使用还要多。本章介绍如何为Linux系统安装、配置E-mail软件。 

1   Linux E-mail软件简介

Linux中的E-mail软件系统分为两大类:MUA(邮件用户代理)和MTA(邮件传送代理)。MUA的功能是为用户提供读写邮件的界面,而MTA的作用则是处理邮件的收发工作。换言之,用户可以通过MUA写信、读信,利用MTA收信、发信。 

最常用的电子邮件MTA系统是sendmail,它由加州大学开发,其最新版本是8.9;另一个常见的MTA程序是smail,它由Curt Noll和Ronald Karr联合开发,也已经发布了几个版本。 

值得注意的是,与其他大型软件包一样,sendmail也有自己的一些缺陷。虽然引起sendmail失败或系统崩溃的错误已基本上被排除,但提供root访问权限的安全性漏洞仍然时有发现。如果配置不当,sendmail有可能为“黑客”提供可乘之机。为了安全起见,用户最好定期访问计算机紧急反应小组(CERT,www.cert.org)的网页,加入它的邮递列表,或者阅读由它主持的网络讨论组(conp.security.announce)来了解由它发出的安全性通知。 

电子邮件的MUA系统目前很多,大约有十几种,其中最常见是:mail和elm。

2  sendmail及其配置

本节介绍如何安装和配置sendmail程序,不过在开始深入研究这些详细内容之前,先介绍SMTP协议以及域名系统(DNS)对E-mail在Internet上传输的影响。

2.1 SMTP

SMTP是简单邮件传输协议的简称,是Internet上传输邮件的既定标准方式。sendmail的基础协议正是SMTP。sendmail程序提供为Linux支持SMTP连接所需的服务。 

要了解sendmail所做的各种不同工作,需要掌握有关互联网协议的一些知识。所谓协议就是硬件和软件进行通信所遵守的标准。协议通常分为不同的层次,高层的协议利用低层的协议作为基础。例如,互联网协议(IP)在网络之间发送和接受数据包,但不必创建诸如SMTP和其他高层协议所使用的端到端(PPP)的连接;建立在IP之上的传输控制协议(TCP)提供了被Telnet和SMTP程序所使用的面向连接的服务;总而言之,TCP/IP为互联网提供了基本的网络服务,例如文件传输协议(FTP)和SMTP的高层协议,都建立在TCP/IP之上。协议分层的优点在于,执行SMTP或FTP协议的程序不必知道与传送数据包和连接其他主机有关的任何内容,因为它们可以使用TCP/IP提供的服务来完成。即执行高层协议的程序不必关心低层协议的具体细节。 

SMTP定义了在互联网上交换E-mail的方式,因此软件版本和硬件环境对交换邮件的程序来说并不重要,只要这两个程序都正确地执行SMTP协议,它们就可以交换邮件。 

下面介绍一个使用的SMTP协议的例子:位于somedomain.gov的用户li正在向位于otherdomain.com的zhang发送邮件。  


  $ sendmail-v zhang@otherdomain.com<letter 
        zhang@otherdonain.com...Connecting to otherdomain.com via top... 
        Trying 123.45.67.1...connected 
        220-otherdomain.com SMTP ready at Sun,14 Nov 1999 18:56:22-0500 
        220 ESMTP spoken here 
        >>>HELO somedomain.gov 
        250 otherdomain.com Hello somedomain.gov [123.45.67.2],pleased to meet you 
        >>>MAIL From:〈li@somedomain.gov〉 
        250〈li@somedomain.gov...Sender ok 
        >>>RCPT To:〈zhang@otherdomain.com〉 
        250〈zhang@otherdomain.com)...Recipient ok 
        >>>DATA 
        354 Enter mail,end with"." on a line by itself 
        >>>. 
        250 SAA08680 Message accepted for delivery 
        >>>QUIT 
        221 otherdomain.com closing connection 
        zhang@otherdomain.com...Sent 
        S 

上面的第一行是直接调用Sendmail的一种命令格式,而不是利用用户所喜欢的邮件用户代理MUA(例如elm或mail)来执行这一任务。这里-v选项告诉sendmail使用冗余模式显示SMTP对话。其余行显示的是SMTP客户机和服务器进行的交谈。以>>>开始的行表示的是位于somedomain.gov处的客户机(寄件人),紧跟其后的行是位于otherdomain.com处的服务器(收件人)的答复。以220开始的第一行是最初连接之后SMTP服务器对自己进行的声明,它给出了自己的主机名以及日期和时间;第二行用来告诉客户机该服务器能够理解扩充的SMTP协议(ESMTP),以便客户能够使用它。像220这样的号码是SMTP客户机同SMTP服务器用来通信的回复代码,跟随回复代码后面的文本才是真正的内容。 

如果想对这一对话有更深刻的了解,可以阅读参考文献RFC821。以-v选项运行sendmail有助于用户理解SMTP对话的工作方式。 

像otherdomain.com这样的名字对于用户理解和记忆是十分方便,而计算机采用的却是像123.45.67.1这样的数字化的IP地址。幸运的是,域名系统(DNS)提供了主机名到IP地址的转化以及其他的重要信息。用户没有必要记忆主机的IP地址。 

DNS把对主机进行命名和编号的权限分配给自治管理的域,例如,一个称为otherdomain. com的公司可以维护自己域中主机的所有信息。当主机a.otherdomain.com想发送邮件或远程登录(Telnet)到主机b.otherdomain.com时,它会通过网络向otherdomain.com的域名服务器发送一个请示,域名服务器不妨假设是主机ns.otherdomain.com。域名服务器ns.otherdomain.com将把b.otherdomain.com的IP地址(可能还有其他信息)返回给a.otherdomain.com,这样邮件将被发送,或者Telnet将被连接。由于us.otherdomain.com对otherdomian.com域具有管理权,因此它能够回答对otherdomain.com中的主机的任何查询,不管这些查询发自哪里;另外,它还有对域中的主机进行命名的权力。 

现在,如果a.otherdomain.com上的某人想给zhang@ somedomain.gov发送邮件会怎么样呢?虽然us.otherdomain.com没有位于somedomain.gov域中的主机的有关信息,但是它却知道如何找到这一信息。当城名服务器收到它不具有此域信息的某个城中的主机的查询请示时,它便向根域名服务器(root nameserver)询问那个域中(在本例中是somedomain.gov)具有管理权限的域名服务器的名字和IP地址。根域名服务器将把对somedomain.gov具有管理权限的域名服务器的名字和IP地址提供给us.otherdomain.com。us.otherdomain.com域名服务器将询问它们并把回复转发给a.otherdomain.com。 

从上可知,DNS是一个包含主机名到IP地址映射的大型分布式数据库。另外,它还包含其他信息。当利用像。sendmail这样的程序投递邮件时,它必须把收件人的主机名转化为一个IP地址。这部分DNS数据被称为A(地址)记录,它是关于主机的最基本的数据。主机数据的另一部分是邮件交换器(MX)记录,像a.otherdomain.com主机的MX记录列出的是能够为它接收邮件的一个或多个主机。 

也许读者会问:MX记录的作用是什么?为什么a.otherdomain.com不简单地接收它自己邮件并处理这一过程呢? 

MX记录的作用如下: 

(1)通过MX,不在Internet上的主机(例如,只利用UUCP的用户)能够指定一个Internet主机来接收它们的邮件,从而使它们看起来就像具有Internet地址一样。例如,假定a. 
otherdomain.com只是偶尔通过UUCP连接到ns.otherdomain.com。如果us.otherdomain.com为它发布一个MX记录,其他Internet主机就能够向它发送邮件。当ns.otherdomain.com收到邮件时,它把邮件保存起来,直到a.otherdomain.com同它连接。MX记录能够使非Internet主机也可以接收来自Internet的E-mail。 

(2)通过MX,使用仅有发送功能MUA客户程序的用户也能接受电于邮件。假设有一台充当一 * C机的文件服务器的UNIX主机pcserv.otherdomain.com。这些PC机都具有可以发送邮件但不能接收邮件的带有内置SATP客户程序的MUA。如果发往外地的邮件具有类似someone@pcl.otherdomain.com的回复地址,那么接收方如何回复信件呢?通过MX记录,问题便迎刃而解:用pcserv.otherdomain.com做为所有PC机的MX主机,寄向它们的邮件都将正确到达。 

(3)通过MX可以把用户的电子邮件存储起来。由于一些难以预料的原因,主机可能会长时间地离开Internet。虽然用户的主机离开了Internet,但发往它的邮件可能在其他主机上排队,当经过一段时间后邮件便返回给寄件人。如果用户的主机具有在中断时间里为它保存邮件的MX主机,那么在用户的主机重新启用后邮件将被投递。这些MX主机可以是站点内的(即在用户的域中),也可以是站点外的,或者两者都有。有条件的情况下,最好选择站点外的MX主机。因为某些事故通常会使用户的整个站点与网络断开,在这种情况下,站点内的MX主机也就毫无用处。 

(4)MX记录能够隐藏信息并使用户更灵活地重新配置自己的局域网。 

收邮件的主机被命名为wang.otherdomain.com还是liang.otherdomain.com并不重要,用户的通信者不会知道其中的差别。 

当某个SMTP客户程序向某个主机投递邮件时,它并不只是把主机名转化为IP地址。客户程序首先查找MX记录。如果MX记录存在,它便按照记录中所提供的优先级对这些记录进行排序。例如,otherdomain.com或许就具有MX记录,这些记录把主机mailerl.otherdomain.com、mailer2.otherdomain.com和mailer3.somedomain.gov列为愿意为它们收邮件的主机。注意,&ldquo;主机&rdquo;otherdomain.com除作为一个MX记录外可能并不存在,即它没有一个可用的IP地址。虽然这些主机中的任何一个都将为otherdomain.com接受邮件,但MX的优先级确定了SMTP客户程序应首先尝试投递的主机。在这里,系统管理员实际上已经设置了一个主邮件服务器mailer1.otherdomain.com和一个站点内的备用邮件服务器mailer2.otherdomain.com,并且还与mailer3.somedomain.gov的管理员协商,把它作为站点外的一个备用邮件服务器。管理员通过设置MX的优先级,从而使SMTP客户程序将首先试用主邮件代收器,其次是站点内的备用邮件服务器,最后是站点外的备用邮件服务器。 

当收集和排序MX记录之后,SMTP客户程序把这些主机的IP地址聚集起来并按照它们的MX优先级的顺序向它们投递。当邮件传送出现问题时,应该清楚这样一个事实:若一封信被投递的地址是zhang@otherdomain.com,这并不能说明主机。otherdomain.com一定存在;即使这一主机存在,或许它也不是直接接收邮件的主机。 

另外,很有必要了解邮件头和信封地址之间的差别,因为邮件路由器处理它们的方式是不同的。下面举例说明两者之间的差别。 

假定某个用户有一个便笺想寄给一些同事,他们分别是A公司的li和qiu以及B公司的zhang和wang吧。用户把便笺的一个副本交给了用户所信任的邮件收发员xie,他记录了所有的收件人。xie是个非常精明的人,他想为用户的公司节省邮费,因此把便笺复印了两份,然后把每份放进一个写有各自公司地址的信封里(而不是给每个收件人都发送一个副本)。在发往A公司的信封的封面上,他写有h和qiu的名字;在发往B公司的信封的封面上,写有zhang和wang。当xie在A公司和B公司的的同行收到这两个信封时,他们对便笺进行了复印并把它们分别送给了li、qiu和zhang、wang,而并不查看在便笺里面写的地址。对于A公司和B公司的邮件收发员来说,他们所关心的只是信封地址。 

上面的比喻说明了SMTP客户程序和服务程序的工作方式。假定zhang@somedomain.gov向他的同事li@somedomain.govzeng@otherdomain.com发送邮件,信头部的收件人名单如下: 

To:li@somedomain.govzeng@otherdomain.com 

0
投稿

猜你喜欢

  • 从中国网游开始发展的时候,各种形式的网络选秀就一直伴随着游戏行业前进演绎至今。至少市面上90%的游戏都举办过类似选美女玩家代言人的活动,捧出
  • 1.介绍 现在的网站随着访问量的增加,单一服务器无法承担巨大的访问量,有没有什么方便快捷的方式解决这个问题呢,答案是”有”!比如建立服务器群
  • Kesioncms V6版本系列产品开发的网站已支持多种的运行方式如全静态、全动态、部分静态、伪静态(带问号,无需组件)、rewrite组件
  • 当全世界大多数行业面临危机和困境的时候,Google的利润和市值依然迅速增长,Google暴利的背后到底隐藏了什么秘密。本文将第一次在世界上
  • 在网站seo优化的过程中常常需要通过一个名为robots.txt的文件与搜索引擎蜘蛛对话。通常来讲,搜索引擎蜘蛛爬行到某一个网站就会首先读取
  • 接触网络也有好几年时间了,每天都在做网站,学习经验知识,今年在站长网上学到的知识最多了,特别是这里有热心的站长朋友们和一些老菜鸟们的经验互相
  • 大家都知道,让百度和google收录的方法不仅仅是向她提交自己的站点,这种方法在几年前经常使用,可是目前,大家所使用的恐怕都不这样做了,现在
  • 从开始筹建网站到网站的运营过程中,都离不开对搜索引擎友好度的考虑,如果站长那个按照一下8个步骤做,能够实现对百度和Google的最佳优化。1
  • 众所周知,WordPress是个功能强大且颇受欢迎的开源博客平台。WordPress友好的界面和操作的简便性为它带来了无数用户,WordPr
  • Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。
  • 内容摘要:近年來因爲 FLASH 优美的视觉效果和广阔的创意空间,FLASH 技术在网页设计和网络广告中的应用
  • 记住一句话:执行ASP程序的地方不允许写入文件;允许写入文件的地方不允许运行ASP程序.在IIS里,选择不允许写入文件的目录如上传图片的UP
  • 伴随着UCenter Home(简称UCHome)1.5的发布,国内越来越多垂直细分的社交网站采用UCHome搭建。同时,Manyou开放平
  • 现在全国都在清理整顿CN域名,新网互联就发出了“关于落实对已注册cn域名开展实名制清查的紧急通知”,昨天提供了上传域名资料的方法,聚友在这边
  • awk #对字段的处理是sed,grep不能实现的。awk -F , 'NR==1,NR==2 {print $1 $2}'
  • 2004年,我怀着梦想来到了上海,第一次来到大城市,刚出火车站,迎面而来的风都带着浓厚的商业气息,坐在去公司报道的车上,看着路边行色匆匆的人
  • 作为做网站的站长,来自搜索引擎的流量已经是网站流量的一个重要组成部分,因此对搜索引擎更新特别关注,总是希望自己的网站在百度收录越来越多,天天
  • 做谷歌这么多年了,一直最佩服的就是谷歌的防作弊手段,因为谷歌防作弊是对外保密的,因此,很多人作弊,虽然道理一套,表面上可能无坚不摧,但是真正
  •  .htaccess文件是非常有用的,下面一篇介绍:&bull; Part 1 &ndash; Introduct
  • 向导秘诀:要确定通过取消不必要的系统服务所节约的内存空间,需要使用Windows任务管理器,以下为操作步骤:在取消系统服务前重启系统并不要启
手机版 网站运营 asp之家 www.aspxhome.com