关闭

关闭

关闭

封号提示

内容

首页 POSTFIX权威指南.pdf

POSTFIX权威指南.pdf

POSTFIX权威指南.pdf

上传者: dongyongle 2012-07-17 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《POSTFIX权威指南pdf》,可适用于IT/计算机领域,主题内容包含序写下了这么一起源于我在纽约州程序量与时它的规模的主要目标之一是使其具有“宽广的适用性”。写出软件只是达成此目标的第一项挑战而已第二项挑战在于如何使符等。

序写下了这么一起源于我在纽约州程序量与时它的规模的主要目标之一是使其具有“宽广的适用性”。写出软件只是达成此目标的第一项挑战而已第二项挑战在于如何使得软件广为流传。虽然高手级专家很乐意阅随附的“友善说明”但是大多数人需要更“温柔”的对待。老实说如果没读有一本介绍系统所蕴涵的理念并示范如何设定各种基本功能与特殊功能的专业用书我不认为有机会达到“宽广的适用性”目标。所以我很乐意把这本书的写作机会让给句至理名言(注邮件系统刚好就是最佳例证。“所有程序员都是理想主义者。”大约三十年前而来发表的网络安全部门的一个半年期的项目。虽然半年的时光确实足以让我换掉自己工作站上的邮件系统但是还不足以建构出一套通用的完整邮件系统。在接下来的几年一组合作无间的专家在测试这套软件时又为它添加了许多程序代码。五年之后当我决定将以通用公共许可证(功能性已经是初期版本的两倍了而且研发进程比以往更为活跃。一样我将这本书视为必须持续进行的工作。在本书的第一版手稿刚付梓如同本身又历经了好几次重大改版。有些改变甚至是与时讨论的结果用意更容易了解有些改变则是增加了前版软件没做出来的功能还有些改变在于让是被计算机病毒与垃圾邮件给硬逼出来的。除了新增或扩充的功能之外还有许多发生在维护与改良过程中的不显眼改变。注年。一或许就在不久的将来。我很荣幸能将这本书的第一版介绍给你但是我已经在盼望下次再见到你的机会由于仍在持续改进中所以这本书也会慢慢过时甚至终有一天需要改版。虽然本书内容以版为准并涵盖过去曾经广为流传的某些重要旧版本与其的差异。从在线文件、网站或书的不足。找到最新功能的说明以弥补本的特定功能。节并示范如何设定为一套仍在积极发展中的软件写书感觉很像“抽刀断水”。所以很遗憾地即使这本书已经出版了它仍然不是完整的。但本书的章节安排已经尽量排除不相干或即将过期的信息所以你会发觉本书的信息还可以存活一段颇长的时间。当然你可能还需要邮件列表(出这本书。本书主要宗旨在于解释背后所隐藏的概念以及在实践中应注意的细没有关于运作原理方面的书籍。为了弥补这方面的缺憾我决定自己着手整理资料写虽然很容易上手也有详尽的在线说明文件但是缺乏一份随手的参考资料也从此以后每当我需要架设邮件服务器时总是我的第一选择。活性与安全性的承诺引起了我的兴趣而它确实没让我失望。不仅如此我还迷上了它。对于灵我第一次开始使用是因为我需要架设一组讲究高安全性的系统。是要克服老软件摆脱不掉的束缚尽情发挥“后见之明”。最初的设计动机正的优势在于它不必面对历史的牵绊。事实上是为另一种构想而设计出来的东西。上最主要的邮件系统但是已有越来越多管理员感受到它当初根本它目前仍是就是一个活生生的例子虽然调整也不见得能够完全适应全新环境的挑战。倍。当然再怎样的高瞻远见也不可能没有成长的苦痛早期的工作成果不管再怎么即使其规模早已不可同日而语而环境也不知道复杂了多少然延用到今日的而言)设计的各种技术与软件仍高手他们当初为“小”网络(相较于今日的初期的开路先锋崇拜之情不禁油然而生。他们是一群令人敬佩的每当我想起前言章节编排前三章讲述枯燥乏味了。建议你先阅读关于果你从来没碰过的解释特别详尽。该书对于与第三章的结构解释的模块化结构以及解释第六章与解释的基础知识。第四章到第七章讨论典型几种应用也可能完全不需要全看你的第一章简介的基本概念同时也探讨介绍与第二章基本概念提供了解本书其他内容所需的基本概念。对可以直接跳过这一章。第四章基本的配置与管理所需的基本技能。配置、管理第五章队列管理如何影响的传递讨论如何设定运作。第七章本地投递与与如何运行本地投递操作以及如何搭配探讨的才能很好地配合的队列管理系统的基本原理示范各种队列操作工具的用法。处理邮件信息的流程。与已有基本认识的读者的某些设计决策。用于何种用途而定。的基本功能。从第八章到第十五章每一章分别描述一种特殊应用你可能只需要其中具有也是非常有价值的信息来源只不过看起来非常出版)是个不错的选择因为所著的系统的入门书籍。重点放在的功能和配置本身以及理解所需的必要概念。如有任何经验就想从本书学到如何管理那就不太可能了。这本书的新手也能看懂不过如果你没时就越得心应手。本书的写作原则是尽量让是为系统设计的网络应用系统。你对网络与懂得越多在管理读者群的工具程序的编译与安装附录二第十三章传输层安全协议使用与让第十四章内容过滤探讨列出附录三第八章虚拟网域讨论如何使用第九章邮件转发转发邮件或成为网关系统。讨论如何使第十章邮件列表中设定邮件列表以及示范如何在这两套最热门的邮件列表管理系统。第十一章反垃圾邮件讨论如何运用第十二章函数库来验证身份验证示范如何使用的邮件转发服务。方都可以使用如何搭配外部的内容过滤程序。第十五章外部数据库探讨如何利用外部数据来源形成附录一配置参数按字母顺序列出示范如何编译附录四常见问题集本书用各种印刷效果来强调不同的文意内容:排版约定回答关于的最常问的问题。的源程序并将其安装到你的系统上。随附的命令行工具并简略说明它们的用法。的所有配置参数方便读者参考查阅。的查询表。之间可以进行加密通信。在任何地的身份让提供的各种过滤机制将恼人的垃圾邮件挡在网络大门外。如何搭配与来接收多个虚拟网域的电子邮件。斜体字(用于表示命令、电子邮件地址、词以及对书籍或文章的引用。最后您可以在以下站点找到我们:询问技术问题或对本书进行评论请发电子邮件到:的范例程序、勘误表与相关资源的链接。的每一本书都有专属网页你可以在此找到关于本书的相关信息包括可下载奥莱理软件(北京)有限公司室座号希格玛公寓北京市海淀区知春路中国:美国:本书的内容都经过测试尽管我们做了最大的努力但错误和疏忽仍然是在所难免的。如果你发现有什么错误或者是对将来的版本有什么建议请通过下面的地址告诉我们:建议与评论用于突出表示程序代码列表中需要加以讨论的部分。等宽黑体字(用于表示可替换参数以及变量名。等宽斜体字(标记。用于表示字面量、常量值、代码列表以及等宽字(、文件名、强调的文字、第一次出现的专有名本身的改进提出了深切的提案。是我的大债主我欠她大笔人情债。她谨我的妻子也是我的首席编辑慎校对我的初稿进行严格的可信度、严谨度测试(若知道她揪出我多少错误你会大吃一惊)。她的无比耐心与可贵的付出大幅提升了本书的质量。即使一遍又一遍地阅读与改写她也不会给我坏脸色。得妻如此夫复何求?的用户同时也对论坛成员中有许多令人印象深刻的高手他们不仅乐于帮助论坛里的许多成员。这是一个几乎没有杂音的活跃我还要感谢。我真希望我有这么一个梦幻团队。与写作风格方面也给了我许多有用的建议。感谢本书的多位技术校阅人员也功不可没他们不仅协助我保证书籍内容的正确性甚至在对于本书制作过程的指导。谢处理写作上的琐碎细节感谢为本书绘制出如此专业的图解。最后要感协助我使用文本处理工具同时还要感谢花了这么多时间来协助我种享受因为他的见解往往一针见血对我帮助良多我感谢他无比的睿智。感谢无减。我的编辑可说是这家公司的代表性人物与他讨论事情是一向来是我很仰慕的一家公司尤其在与他们合作共事之后景仰之情更是有增幸同时也让我受益良多。这本书有许多内容甚至可说是他的心血结晶。他的指导更要感谢他对的贡献。能够有机会与他合作这本书实在是我的荣当然第一位我应该感谢的人是的原创者。我不仅要感激致谢今日大部分的广的网站使用年代早期当第一段信息流过(今日的历史可回溯到世纪就成为邮件。协议来收发邮件。虽然依然是分布最但是它也逐渐显露出不足。的单体式结构已经成为许多安上最广泛的应用程序并持续到今天。以前的前身)时多用户的大主机上而已(译注的改进网络本身变得越来越复杂邮的电子邮件传递程序相当简单通常只是将邮件文件从一部大主机搬移到另一部服务很。随着年代早期出现的件系统需要更有兼容性的工具才能在不同的网络之间甚至在不同类型的网络之间传递包就是为了应付各种不同邮件系统而设计的它很上最重要的邮差。快地成为全隐患的主因而且难以配置与维护。。它的设计结构消除了许多产生安全隐的原始构想就是要取代普遍的管理员只需控制管理两个适合“人”而且打从一开始患的机会同时也降低了维护工作的复杂性。看的配置文件即可(译注就被刻意设计得能妥善应付意外的软硬件问题。译注译注现在你知道为何协议了吧!)这种已经没有人使用的程序在运行时的解读所以被刻意设计成适合“程序解读”的格式。主要是为了方便的配置文件(支持“简介第一章的起源与设计理念他做的安全防护工具与论文在业界相当有名。在的原作者是赞助了初月他决定让正式成为软件。年并不断支持其研发工作。可靠性、安全性、称呼此包为研发初期就订下的理想目标。效率、灵活性、容易使用、兼容于是假设它自己处于一个充满敌意的环境设置了多层的保护措施来抵御攻击者。整个)这个安全理念:每整个系统其实是由多个不同程序与子系统所构成的这样的系统结构使得配置文件背后的理真正的价值要在严苛的条件下才会逐渐显现出来。不管环境如何简单软行为就变得不可预测。件都有可能遇到意外状况。比方说有许多软件系统在耗光内存或磁盘空间时其能够侦测出这类状况让系统有机会恢复正常而不总是采用任何能够采用的预防至于将问题搞得更糟。不管遇到怎样的障碍措施以稳定、可靠的方式应变。系统都贯彻了“最低权限)里独立运作。权限较高的进程决不会信任没有特一个可以独立出来的功能都分别写在不同的模块里并以最低限度的权限在专属的进程环境(权的进程。非必要的模块可以被管理员移出系统或停用借此提高安全性并简化维护管理的工作。“效率”是中心理念之一事实上它甚至采取了相应步骤来确保它的运行不会影响到其他系统的效率。它使用多种技术来限制新建进程的数量以及处理信息时所需的访问文件系统的次数。非常有灵活性因为每个组件的行为皆可通过配置文件来个别地调整。)来转换地址、传递邮件。隐藏在是最容易架设与控制管理的邮件系统之一它使用直接的配置文件与简单的查询表(也就是说的行为结果能尽可能符合大多数博士面临设计抉择时他选择的是最多人会认为合理的方案。念是“平实”人的预期。当的任何应用程序。不必迫使用户做出任何改变也不会破坏原本依赖而兼容于 的特性使得可以轻易替换掉系统上原有的兼容于容易灵活性效率安全性可靠性始版本(就会收的其他系统另一个系统并收下远方送来的邮件。每当的寄信请求它会先收到判断是否应该受理。通常如果邮件是来自本地系统的用户或是本地网络上的系统或是任何特许可以通过它转发()邮件到其他目的地的网络请求。另一方面都会受理寄信也会依据“收件人”来决定是否要收下邮件。如果收件人是本地系统的用户或是收件人位于它知道要如何转递(下信息。由控管公司员工的则可能由企业的信息系统部门控管。通常是则退信给原发信者或是发出通知函给系统管理员。一般个人的处理接力传递。如果能会经过多个无法递送信息也无法转交给其他户也有可能将邮件交给另一个来继续传递。对于要交给其他网络的邮件有可收下邮件之后它必须决定下一步做什么。它有可能将邮件递送给自己系统上的用从一个系统递送到的委任将的任务是接受件人所经过的处理流程。从发信者到收是的服务器。图软件(例如邮件交给一台运行送出一封邮件它只是将该当你寄信时信件是交给邮局处理。同理当你要求邮件系统的组成)代为传递。扮演的角色正是送到收件人手中而是由“邮件传输代理”并非直接将信、寄信。不过。其任务是让用户能够读信、写与实例包括:常见的件称为“邮件用户代理”用户只熟悉用来读信、写信的软统它只是整个系统中的一个重要组件。大多数邮件系本身不是一个完整的从发送方传递到接收方的详细过程。标准与协议。这组协议制定了邮件的标准格式、邮件系统各角色的定位与任务以及邮件能够与其他系统交换信息唯一前提是所有软件都必须遵守一组公开的系统采取开放式设计任何人都可以用不同的软件组合来架设一套邮件系统并且不能随意更换个别组件因为通常没有“等效程序”可以更换。另一方面在专业的解决方案中整个系统的各个组件通常都是来自同一家公司的软件你与功能。没必要以同样的方式来实现出所有相关程序可以继续使用但是无关甚至也的改进已与的命令行自变量只不过实际的运行工作是交由系统来完成。虽然你的的可执行文件则被替换成的版本这个替代版具有相同支持与的约定像文件。而本身协议主要的传递流程:简化的图在发现收件人是本地系统的用户之后必须将邮件交给“邮件投递邮件终点站的可能将信息存放在普通文件夹内也代理”可能存入专门存储电子邮件的特殊数据库。不管是哪一种形式任何用来长期保存邮件的机制我们一律统称为邮箱(或俗称为“信箱”。邮件被存入邮箱后它就待在那里等待收件人将它收走。收件人使用许多不同的软件包来扮演。实现相同协议的不同包可以彼此互相交流而不管它们是在什么系统上运行。如果将一个完整的邮件系统集中在一起你可能会发现处的是一套软件处理的是另一套软件。但邮件系统中的每一种角色理都有许多不同的软件可以选择。邮件系统里各种角色之间的通信受各式各样的标准与协议的规范。定义这些协议与标准的文件由)维护管理主旨在于规范两部主机通过网络交换的对话原则。用于收信的协议是信。提供邮箱访问服务的服务器软件并非当初收下信息的必须让用户成功通过身份验证才可取走邮箱里的邮件呈现给用户阅读。采用开放式标准所以的。由于)的形式公布它们。是一种被赋予正式编号的标准文件它们用于解释特定的技术或协议。用于传递信息的标准协议是)或。协议的出现比)与)都是描述如何从邮箱取出邮件。它定义于以等不同角色可分别由两者的角色是分离来取信、读与收信当用户想从邮箱取出他们的邮件必须使用都是保存在一部中央服务器与与可以分别位于不同的主机的原因。来收信并使用的协议。原始的协议并没有加入了这方面的功能。关于如何器代为访问邮箱。与如还是略晚其功能也较完备。但不管是中让收件人可通过网络取信。请注意既然软件需要你分别设定有可能将寄信与收信服务分散在不同的服务器这样出差与可使用公司的也没必要非得位于同一个系统上不可。这就是为何到外地的企业员软件会持续在固定的)等来寄信。在上运作的待的寄信请求。或其他与寄信是用于“寄信”(传出邮件)的协议。当要求代为送出一封邮件以时都使用及一个将邮件送到另一个身份验证的设计但是后来的扩充版本验证用户的身份请参阅第七章。或由服务连接到之间最大的差异在于邮箱的管理方式。将所有邮件从服务器搬回自己的主机用户通常则容许用户通过网络要求服务器代为管理两者都完全没有寄信的能力只能帮用户处理事先收到的邮件。关于邮件。许多服务器同时提供两种协议所以我们通常统称它们为与请参阅第十二章的说明。何搭配处理。件分送到邮箱或是交由特殊的信息当作为本地信使时则是直接将邮协议通过网络收发使用时”与“本地信使”两种角色时的情况。当作为图扮演“描绘了通信内容。或收下其他系统寄到本地系统的邮件。它不处理任何担任的角色负责在服务器之间传递邮件并邮件系统中在整个的角色直接读取同一机器上的邮件文件。户可以设定他们的账号的用来访问邮箱。举例来说拥有并非所有用户都需要透过上来收信时他是使用自己的地址(即可以知道后(关于网域与的关系请参阅第六章)。放在适当的邮箱之后剩下的事就等就到此为止因为当取得邮箱中的邮件。承担了绝大部分的递送工作。邮件系统的观点来看用户的观点来看这些琐碎细节几乎是隐形的但从还必须暂时将信息排入队列然后定期试着重新递送。从中一两台收信主机时无法联络其还必须要搞清楚如何分批传送如果因系统或网络问题使得在递送邮件时的复杂细节。比方说如果有多位收件人这个例子并没有详述来通过或的工作主动上线收信了换言之收下邮件并存的)的邮件应该要送到哪一部之)来决定该邮件应该送到哪里去。在查询了必须依据收件人的所提交的邮件。这时候目的地所以收下她的答应帮她将邮件送到。担任然后用提交到她的角色的编写好邮件她使用自己的想要寄出一封信给(即使某些软件使用得不是那么规范)。在我们的例子中软件交谈语言的可以跟任何使用方也可以互相交换邮件。事实上双为不是标准的规范所以即使另一方的的行为符合在图都是的例子中收发双方的但其实这不是必要条件。因图:典型的传递流程的安全性模块化设计的模块化结构成为其保证安全性的重要基础。每个进程的权限都被压与进程在大部分情况下投递邮件的过程并不需要大部分的进程都是由一个可靠的邮件系统免不了要面对可能的攻击因为它们的功能需要它们能够接受来自陌生系统的层保护。处于易受攻击环境的公众系统其安全威胁的问题更加严峻。数据。这项挑战形同要建构出能抵御攻击的系统而任何优良的安全防护策略都涉及多采取了预防性的多层防卫措施来确保安全。成安全问题的严重性而对于本身的结构设计减小了因本身安全隐患而造这种采用单体式设计的特权程序结构上或程序上的小错误就可能造成严重的损伤。制到最低限度仅刚好足够完成其工作内容。的安全问题特别严重原因之一就是将将不同的功能分大部分时间都是以特权身份运行追根究底这正是因为的所有功能都集中在同一个程序里难以分工所致。另一方面是在一台网络防火墙系统上运行它只需要转发邮件而不必担任本地信别写成独立程序以个别进程运作而每个进程都只需要能够完成其工作的最低限度权限即可甚至可将不需要的功能拿掉这就彻底杜绝该功能遭受利用的机会。举例来说如果的各进程之间是彼此隔离的而且几乎不(进程间通信)每个进程都可以靠自己得到所需的信息不必仰赖其他进使则可以关掉分送本地邮件的功能。需要任何程的协助。只有一种情况例外:在将信息放到环境变量之前必须靠来“净化”信息。但须试着先消除任何对有特殊意义的字符然后才能将数据开放给所启动的它们不是必的法的原理是想办法使程序将数据写到它不应该写的内存地址借此改变程序的运行流对于应用软件的另一种常见攻击手法是“缓冲区溢出”。这类攻击手与生俱来的安全性是无效的。的攻击手法对都、共享内存、公开文件或任何其他形式的用信号(子进程所以它们没有任何关于父子继承关系或通信的安全问题。即基本上任何使如何取得安全是软件的一个必备要求。的每一个进程都只有最低限度的权程进而获取进程的控制权。先前已经说过程序本身不会将动限所以就算进程被胁持也不至于造成重大破坏。事实上被设计成能接受有限制的运行条件所以“拒绝服务”由于安全防护的困难在于没人知道下次会遇到何种攻击手法。被设计成无论如何都要能够应付逆境情况。所能提供的安全保障主要来自它内置的稳定性。事实上博士说他对于安全性的兴趣不及写出病毒软件的兴致。姑且不管实情如何的正式网站可以取得更多信息。从这个网站提供了源程序、说明文件、附加软件的链接、文章以及关于如何参与心态数据放在固定容量的缓冲区中这使得“缓冲区溢出”的攻击手法几乎不可能得逞。系统提供了一种重要的安全防护机制录”。管理员可选择文件系统中的某一个子目录(例如来改变应用程序见到的“根目)来作为应用程序的新的根目录当程序运行时它见到的文件系统仅限于指定节点之下的子目录而见不到节点之上的部分。这样做的好处在于即使进程被外界胁持也无法访问重因为有要的系统目录(例如//等)。并非所有应用程序都适合用本些程序需要能够看到整个文件系统或是所需要的文件分布得太过零散但是身的设计使得它非常适合搭配(关于也的工作细节请参阅第四章)。将隔离到一个专属的文件系统空间最大的好处是攻击者就算成功入侵的限制让我们可将系统损害限制在一定范围内。挣脱不了)这种攻击手法不太有效。如果因受到或内存攻击或其他原因使得系统耗光磁盘空间会谨慎地避免雪上加霜它会停止尝试原本设定应该运行的工作让系进程可使用的磁盘空间或统有机会腾挪出资源来复原。你可以在配置文件中限制内存以免在遭受猛烈攻击时变得一发不可收拾。的额外信息。你也可以在此找到邮件列表(。如果你还没取得)的方法与网络上的其他感兴趣的人一起关软件你可从该网站下载最新版的源程序。如果你没有自己编译软件的经验该网站也提供预先编译好的包你可以寻找看有没有适合你所使用的平台的版本。。首先不一定有适合你的平台的预编包第二就有许多理由值得你自己编译算有包的封装者预设的环境也不见得完全适合你的系统而你所需的额外支持软件也不见得封装在包里。最后预编包的版本往往是过时的如果你想要安装最新的版本挑出离你最近的镜射站点来下载软件。)与“实验版”那就只有从源程序开始编译一遍。如果你自己有编译软件的经验你会发现是最容易编译的开放源码的软件之一。链接会打开出一页含有世界各地镜像站点的链接页你可以网站上的分成两种版本即“正式版”软。虽然名为“实验”但其实已经非常稳定。实验版含有仍在测试的新功能这些新功能的实现细节在被纳入正式版之前可能会有所改变。如果你需要实验版才有的新功能你可以放心使用实验版只不过要记得下次升级版本时必须注意当初吸引你使用的“新功能”是否有所改变。所有文件。件都是经过严格测试与复查之后才发布的。关于实验版与正式版之间的差异请参阅附件包的其实在于虚账户不能登录系统。虚账户主要是用于管理或是限定程序的运行权限。你的系虚账户()也是正常的系统账户与一般用户账户之间的主要差异虚账户称。当我们说某进程需要使用某“账户”的权限时其实真正的涵义即是“标识”。来表达而非登录名时候会需要分辨不同用户的标识其关于用户标识的参数是以有记忆的符号其唯一用途是与配成对构成所谓的“标识”而非登录名称。登录名称只是方便人类系统检查拥有权限与身份时主要是依据。当或通常简写成)与“用户标识符”系统认识的用户名单记录在文件每一位用户都有自己专属的“登录名称”编号登录名称与研读相关入门书籍本节的宗旨在于交代本书常用词汇的意义而不是带你入门。的新手应该先系统的支持才能顺利发挥功能。如果你是使用程序它需要是个地道的越熟悉就越能够成为称职的显然你对管理员。的概念一些基本术语的定义以便后文提到这些术语时读者能精确知道我们想表达的意思。或章还没有论及的管理因为这方面的信息太多了。本章的宗旨在于理清系统管理的实践经验大可放心跳过这一章。本已熟悉邮件系统的结构并且也有与的基本概念可帮助你看懂后面章节的内容与范例。如果你本章将说明基本概念第二章命令行提示超级用户每个系统都至少有一个管理用途的账户称为“超级用户”名称通常是需要权限。事实上如果你没有当你登录系统时引导你操作的那个程序称为“。正如其名称一样操作系统的“外壳”让你可以对操作系统下达工作命令。当会显示出一段提示信息其中可能包含你当前的身份、主机名称、当前的工作目录还有一个不太起眼的提示符号(通常是或。管理账户拥有系统的最高特权相对地破坏力也特别惊人。你应该只有在需要进行特殊管理工作时才以身份登录系统。管理权限你将无法控管。)。详细的信息格式随你所面对的或。在本书的范例中我们将沿用定一般而言如果你当前的身份是一般用户提示符号可能是身份则会看到权限才有效但如果是表示有一般的用户账号就足够示符号表示该命令需要了。提的惯例即如果你看到但如果是而等待你下命令时它是时有时候也其账户的入门书籍。请参阅一样也可以被转接到其他地方。如果你需要更进一步了解的屏幕但像。此流通常是接到用户出错误信息的流管道称为“标准错误输出流”(简称为除了标准之外程序通常还会有一个专门用来输容将修改过的内容送到得到邮件内上以达成交互的效果。举例来说滤信程序可能从其他程序的标准也可以连接到其完成更复杂的工作。在邮件系统的管理实践上服务器程序的标准系统下的工具程序通常可将这种方式结合在一起合力入文件或传给其他程序。可以被导引到其他地方让程序可以从文件或其他程序读取数据或是将数据写般而言指屏幕也就是用户用来与程序交互的两个设备。指键盘而。一。进程从与读取数据将数据写出到流”通常分别简称为系统上的几乎每一个进程在启动之初都有一个“标准输入流”与一个“标准输出标准输入/输出圾邮件过滤程序则可能还需要多增设几个虚账户。个虚账户给进程如果你需要运行其他配套程序例如邮件列表管理程序或垃)或无效的而造成的。在的管理实践上你至少需要准备一般而言“不能登录”的效果是借由刻意给一个无效的密码、不存在的主目录(统应该已经预先安装了好几个虚账户诸如等都是常见的虚账户名称。一的概念在线说明书系统的说明文件是以“在线说明书”)的形式放在系统中你可以用命令来阅读它们。举例来说如果你想阅读命令的说明:过长的文字行在操作时如果命令行过长(超过屏幕的宽度)时则在末端加上一个反斜线符号(\)以表示下一行其实是前一行的延续。以\符号连接的多行文字应该被视为逻辑上的同一行。用作延续的反斜线符号不仅可用在命令行也常被运用在配置文件里(但是的配置文件例外请参阅第四章)。在本书如果我们要展示的命令无法印在同一行也会以相同手法来处理。如果你要自己练习这些超长的命令你可以按照书面上的格式输入(包括末端的\符号在内)也可以自己将它们凑成同一行。接着屏幕就会出现一整页说明按下空格键可以继续观看下一页。与在线说明书有标准的编排格式通常一开始是命令的语法然后是所有选项的说明最后还有一些额外的参考信息。有人可能会觉得在线说明书很枯燥乏味但是就像字典一样再怎么无趣你迟早还是要养成查阅在线说明书的习惯。所有的命令都有在线说明书可供查阅。哪一种的重要的基是一个涉及许多层面的复杂主题。当你管理一个邮件系统时不管使用有些重要原则是不变的。本节说明这些关于本原则这些概念不仅有助于你理解本书后面的章节也有助于你从其他渠道获得更详细的信息。与月它们分别被年在这两个提案标准取代不过你仍年以上的历史何传输邮件后者规范邮件信息本身的格式。这些规范文件都已经有分别是与时最常被提到的两个前者规范系统之间如上的邮件系统这些有好几个如果你要管理的不可不读。谈到的各项标准。关于)定义:邮件系统的各种代理程序全名。为了方便参或协议负责投递本地邮件到适当的邮箱任务协供用户写信、读信、寄信的软件。寄信时以收信时以议将邮件提交给访问服务器上的邮箱。进行最后的投递操作。负责接收、递送邮件的服务器软件。决定邮件的递送路径进行必要的地址改写。应该由本地系统收下的邮件委托给可以过滤邮件以寄到另一个内容或是依照用户设定的准则将邮件分类到适当的邮箱甚至可以将邮件转回给箱。何无法寄达。退回(给寄件人并随附一份错误报告让寄件人知道他的信无法寄达以及为应该将邮件有可能是收件人不存在或是最后的递送过程中出了问题这时候给寄件人。另一方面如果在收下邮件之后才发现无法将邮件递交给收件人。这时候拒收的一方应该产生一份错误报告不接受该邮件它会当场拒收(协议”)决定如果在对话过程中(参阅本章稍后的“一个正在收信的“拒收”与“退信”该网域实际的邮件管理员(或团队)。别名此别名指向的规定每一个网域都要有一个等责任。依据承担起确保邮件系统正确运作、适应环境的改变、增加/移除邮箱账户、过滤垃圾邮件。担任此职务的人要负责管理邮件系统的人通常称为“邮件管理员”邮件管理员简称表整理了这些代理程序的功能。考表前一章在描述邮件的传输程序时曾经提到好几种“代理程序”代理制度他们的网站是文档由然会时常看到旧标准。)负责维护信封地址与邮件标题用户常常搞不清楚一件事:邮件实际会被送到哪里这其实与标题的写好的信交给并非所有)或至少由另一个协议要求收下邮件的有义务通知寄件人使其知道他的邮要负责将邮件寄达(交给接手。如果在收下邮件之后才发现无法寄达件并没有送达收件人手中。)里后的地址无关。实际决定邮件终点站的是“信封地址”以也命令所指定的邮件地址(稍后的对话过程中就是将用户协议”一节会展示的对话过程是怎么回事)。一般而言当时这时候确实是以用户提供的都如此守规矩地址来作为信封地址。然而至少寄垃圾邮件的软件肯定不会守规矩。从对话过程也就是所谓的“信封地址”而的观点来看标题属于邮件内容的一部分邮件会被送到哪里决定于中所指定的地址不管邮件标头的字段指定了些什么。精确但是比较方便解释。译注为了方便说明将翻译成比较符合一般称谓习惯的“人名部分”虽然不是很邮件”。你应该了解常简称为“格式的基本结构因为本书会时常提最早定义符合格式标准的邮件通邮件信息格式的标准是邮件信息格式(译注而“网域部分”则被称为“)一词来代替容易令人误解的“。为了避免混淆某些文件以“称但也是可以代表另一个地址的别名(通常是用户的账户名分:分隔符、网域部分(都有明确规定。如果忽略不显眼的小细节一个简单的邮件地址大致可分成三部包括批注之类的东西要如何编进邮件地址邮件地址的详细格式定义在邮件地址的“人名部分”换成任何其他地址看看是否会影响邮件的递送。命令之后的文字段)的的对话过程不妨试着将邮件内容(如果你想实验例与例。更详细的信息请参阅以及稍后的“电子邮件信息格式”。地址”的两个实与垃圾邮件是“信封地址”不等同于“邮件列表(邮件案标准以“相关的技术文件也经常使用这个名词。我们将使用比较新的提到它而且任何与邮件”表示。详细规定了标头字段的格式与用途有些字段甚至是彼此相关的它们必须被一起解读才有意义。最简单的电子邮件至少要包含:这两个字段其余:与格式是没有限制的不过为了帮助解读邮件内容定义了一些标头字)与正文(不仅定义了邮件信息本身的格式也规范了邮件地址在邮件标头里的格式(与“信封地址”无关)。规范文件所描述的格式是用于传输的格式而非存储在邮箱里的实际格式虽然有些邮件系统使用相同或类似的格式来存储邮件。一封信可分成两大部分:标头(。标头含有许多特定名称的字段诸如或等这些字段有一个共同特点那就是名称之后都有一个冒号(:)在冒号之后是字段的内容。一个标头字段的内容可以跨越好几行开头为空格符(字符都算)的文本行逻辑上都属于前一行的延伸。字段由随情况添加。除了标准字段之外有些邮件系统也定义了自己专用的特殊字段。标头与正文之间以一个空白行为分界。正文包含了邮件内容本身。原则上邮件正文的段来描述正文的编排格式。除此之外邮件正文还有一项严苛的限制条件:只能包含字符。诸如图像、字符(汉字)之类的二进制数据必须事先以特殊编码字符才可以编出符合标准的电子邮件。如果要夹带文件必须以法转换成是一封具有标头与正文的典型邮或其他编码标准将文件转换成可传输的字符。例件。邮件信息的标准格式例模拟例:使用对话过程示范了送出一封邮件的基本步骤。件。例协议来送出邮亲身体验如何使用可以使用是你知道哪里有现成的之后(或协议的最佳方法是实际观察两端之间的对话内容。在你架设好认识)以及要传送的信息本身。)与响应(简单的命令(对话”对话内容是一系列送邮件时必须主动连接到服务器端并展开所谓的“。客户端要传接受邮件的一方称为“服务器端”一方称为“客户端”是用来送信的协议送出邮件的机而言因为它的设定很人性化也颇为宽松。不管是对人或对计算。这是一个相当容易遵守的协议协议定义于协议字段暗藏许多玄机请参阅下一节的解释。描述该封邮件传递过程中的信息。字段以都必须在标头顶端加上自己的议)规定收到邮件的每一个协:字段。并未硬性规定一定要有此字段但是此例中的大部分标头字段不用解释你也知道其意义唯一需要特别说明的是的响应信息有固定格式一开始必定是三个数字的“响应码”接着是一段适合人们解读的简短信息。响应信息代表前次命令的接受状态对客命令后面必须是户端而言只有第一个数字有意义。表整理了各级的响应码与它们对应的意义。表响应码范围的响应状态码状态请求的动作已成功接受并完成客户端可以继续下一步。命令不接受因为服务器还需要更多信息。客户端应该以其他命令提供充足信息。暂时性的失败。若客户端下次尝试同样动作或许有机会成功。永久性的失败。客户端不应该继续尝试同样的动作。命令介绍它自己。客户端收到欢迎语之后接着必须使用客户端自己的完整主机名称:客户端使用命令表示发信者的邮箱地址:服务器端响应成功让客户端可以继续下一步:后出现的是的响应信息:连接成功对话没有这一段。在自己显示出来的真正的这段信息是的公认通信端口)接着出现下列信息:要手连接到键入的部分。一开始我们使用的(这是(在此例中这是一台。如果想自己实验黑体字就是你将例这个例子示范了如何使用的那封邮件送到服务器上的命令结束从这时候开始由服务器端负责将邮件送到目的地。如果客户端还想要执行其他命令现在就可以开始了。如果已没有其他邮件要寄到此服务器则应该使用对话:。支协议。增强版的协议称为个架构定义如何新增额外功能到基本的提出了一只是最基本的命令而已还有许多其他额外命令存在。对话。当然这个例子只是最简单的告诉你连接已经中断并回到命令行环境:最后接着服务器便会主动切断连接:服务器表示它已经收到完整邮知道整封信已经结束。字符(在画面上看起来整列只有一个小点)让这五个头与正文。在客户端送出完整邮件之后必须依序送出<这时候客户端可以开始传送整封电子邮件。请注意这里说的是“整封”包括了标命令并提示如何表示邮件结尾:服务器端响应它接收到的邮件:封现在客户端可以开始送出邮件的内容了。命令让服务器端知道客户端要传送服务器端同意将邮件传递给你指定的收件人:客户端使用命令指出收件人的邮箱地址:服务器端表示接受该地址:找一下你会有不少收获。议的文章用协上有许多关于与的信息。在)寻找到关于的网站(规范文件里你可以在其他许多强化措施都定义在各个则会回答它支持哪些功能。务器端对话。如果服务器也支持持换成的客户端可以将对话之初的与服表示希望使用即使不清楚使的内部组织结构你也可以轻易地控制管理它。如果你已经迫不及待想要试用它不妨跳过这一章直接从第四章开始。事实上如果没有丰富的用经验本章内容反而可能使你摸不着头绪。但是当你累积了足够经验之后你会发现本章能解答你心中的许多疑惑。因此对于理论没兴趣的读者我诚心建议你多累积一点经验之后再回来看这一章相信收获会更多。邮件送到终点。接下来的几个小节将分别讨论每一阶段的详细步骤。将)会启动适当的封邮件被收下并排入队列之后队列管理器(组件负责。当一接收邮件、将邮件排入队列、递送邮件。每个阶段由一组独立的图的结构。粗略来说整个处理流程分成三个阶段:从邮件处理流程来描述第四章。的配置文件请参阅和 从这两个配置文件取得启动参数。关于会常驻在系统中当管理员启动它时它预定限度组件也会自行结束。成交付的工作之后会自行结束或者如果组件的处理时间超过时限或是工作量到达启动的组件在完会启动对应功能的组件来处理相关事宜被过程中它主导邮件的处理流程同时也是其他组件的总管。在处理邮件的。当被启动时首先启动的是里的连续运作的后台进程(的形式存在也就是常驻在系统内存。大多数组件都是以为组件(。这些自成一格的专门程序我们称之处理这种结构称为“模块化设计”采用专职负责的策略不同的功能分别交由不同的专门程序计”传统的将所有功能都集中在同一个程序里这种结构我们称之为“单体式设的组件的结构第三章可接受网络传入的邮件(来自请参阅“来自网络的邮件”。或其他的处理流程请参阅“来自服务器本机的邮件”。。这类邮件的处理流程传回到(通常是为了转寄当无法将邮件寄到目的地时自己会产生退信通知函。这类邮件的处理流已经被的邮件被收下并交给到另一个地址)。这类邮件的处理流程请参阅“来自服务器本机的邮件”与“转寄邮件”。程请参阅“通知函”。之前就被拒绝了或者因为暂时性的故障(网络断线、远程服邮件有可能在进入系统一务器响应暂时性的错误等)同样的邮件可能会每隔一段时间就重复进入次重新递送。队列目录下的子目录。专门注意子目录有无变化的是寄出邮件后的的版本)会使用程序将邮件存入令。提供了一个与此命令兼容的同名工具也称为。当用户以包内的要寄出邮件时(不管这封信是寄到哪里)通常是使用命图是本机提交的邮件在进入系统之后的处理流程。在系统上当用户将队列里的邮件交付给正确的组件。给由其代为放入适当的队列。当需要处理特定工作时组件可将邮件交付)负责控制管理。些队列全部由队列管理器(系统有多个队列这)交换邮件。组件之间的合作全靠队列(各个来自服务器本机的邮件可接受来自本机系统的邮件(本机用户或自主进程提交的邮件)。这类邮件系统:邮件有四种渠道可以进入系统邮件如何进入:图的邮件处理流程来自网络的邮件将邮件送到下一站或直接送到最终目的地。:服务器本机用户寄出邮件时的处理流程图经过处理好的邮件会被传入收件队列(会不断注意收件队列的变化每当有新邮件进入收件队列时便会用适当的描绘了系统从网络收到电子邮件后的处理流程。来自网络的邮件由图接收进来然后交给运行清理程序随后排入收件队列由选择适当的将邮件送到下一站或最终目的地。有可愿意提供转发服务:一是客户端符合配置文件便会读出新邮件然后交给每当有新邮件进入时进入“清理程序”。当邮件刚进入时不一定含有构成有效邮件的所有必要字段而且标头里的地址也可能需要被改写成标准格式并依据规范的或虚拟的查询表(如果有的话)将原本的地址改成其他地址。所谓的“清理程序”就是补足遗漏的标头字段这部分工作由负责地址的处理由负责。所控制的网域的邮件(能收到两种邮件第一种是外界寄给系统本身是一定会收下第一种邮邮件的终点站或网关)另一种是要寄到其他网域的邮件。。在两种情况下件(如果收件人存在的话)至于第二种邮件(目的地在其他网域)就要看传邮件过来的客户端是否有资格。网络收下要寄到其他网域的邮件并代为寄送到目的地的动作称为转发(转寄邮件之后的清理程序之后再排入收件队列由:网络邮件的处理流程图通知函或当用户的邮件被延时或是根本无法递送到目的地时使用产生一封新的通知函。这封通知函会被交给由它进行例行接手处理。系统参数所列限定的资格(参阅“其他网域的邮件”一节)二是收信网域是出的网域之一(参阅“转发邮件”一节)。文件发现了另一个地址时就会发会发现该邮件其实应该寄送到另一个系统的另在用户个人的(即可以直接使用)送出邮件。应该依提交新邮件的方式让邮件重新回到不过由于同一封信可能有多位收件人为了照顾到每一位收件人同时也为了在邮件日志上留下完整记录按照“来自本机的邮件”的程序来处理(参阅“来自服务器本机的邮件”)。由有时候邮件在委托给一个账户。比方说当生这种状况。照理说将邮件排因为只有经过清理的邮件才有资格进入队列。队列管理器。邮件进入队列之前的关卡是组件都有一个共同的目的地的)负责。每一个能收到邮件邮件本身的处理工作主要是由队列管理器(的队列管理器投递操作依据收件地址的类型来判断是否要收下邮件以及如何进行投递操作。主要的地察觉收信去处理新邮件。每当入收件队列后会通知来决定邮件路由信息这些信息包括传队列有新信到达时就会使用输方法、下一站以及收件人地址。总共维护四种队列:收件(活动(、延迟(故障(译注。新邮件通过之后的第一站是“收件队列”。假设系统资源空闲会将邮件移入“活动队列”然后调用适当的来投递邮件而投递失败的邮件则会被移入“耽搁队列”。除了上述四种邮件队列目录址类型有本地(、虚拟别名(虚拟邮箱()以及转发(。如果收件地址不在这四种主要类型之中则邮件会被交给通过网络寄送出去(假设原信是来自有资格使用转发服务的客户端)否则便依据地址的类型选择适当的来投递邮件。本地邮件如果收件人为本地系统的用户(在运行的那台服务器上有账户的用还要负责协调来产生一份递送状态报告并传回给系统管理员或送信者(或两者)。如果邮件被耽搁太久或是被判定无法送达则与的队列目录下(默认位置是在与之外还有目录。这些目录含有状态信息解释特定邮件为何被耽搁与就是利用这些目录下的状态信息来产生通知函。的内部运作细节请参阅第五章。或无法递送关于户)则他们的邮件会被交给处理。凡是收件地址的网域名称与参数列出的任一网域名称相符这类邮件都算是本地邮件。对于送到任网域的任何有效账户的邮件何会先检查收件人是否有个人的文件如果没有则邮件会被存入用户的个人邮箱否则则依据文件的内容来进行投递操作(或转寄到其他地方或是交给外部程序处理)。关于本地邮件的投递操作的详情请参阅第七章。的垃圾邮件暂时留在系统使之不流入用户的邮箱(参阅第十一章)。是靠来自动维护而是由邮件管理人员手动控制管理。比方说将可疑不译注系统还有一个“保留队列”作者这里没提出来是因为此队控制管理的网域、但是愿意代收并转寄的邮件称为转实际邮箱位于其他参数中其邮件由通过网。当你架设邮件网关系统时便可利用转发功能收下发邮件。这类网域的名称列在络送到目标网域的寄到内部网域的邮件并转寄到内部网络的邮件系统上。关于转发操作的细节请参阅第九章。上的外界网域。寄信到位于相同局域网络的其他主机好让这些主机可通过所有客户端都有资格使用转发服务。一般而言我们会将转发服务开放给与邮件必定是要送到系统本身之外的其他网域。先前在“来自网络的邮件”曾说过并非以递送到正确地点因为这类如果邮件的收件地址不属于前述四类则一律交给其他邮件转发邮件负责运行。关于虚拟邮箱请参阅第八章的说明。查询表中虚拟邮箱与系统上的账户之间没有关联性。虚拟邮箱邮件的投递操作由参数所指定的的用户。用户与邮箱之间的对应关系定义在己的用户群而且有各自独立的命名空间换言之即不同的虚拟邮箱网域可以有同名参数中。每一个网域都可以有自虚拟邮箱的网域名称列在虚拟邮箱邮件便传到真实地址。关于虚拟别名请参阅第八章。所列出的网域之一则会重新提交邮件以址的网域部分是发现邮件的收件地参数所指定的查询表中。当不同的虚拟网域可以容许有同名的用户。用户与其真实地址之间对应关系列在名称列在参数中每一个虚拟网域都可以有自己的一组用户寄给虚拟别名地址的邮件全部都需要转寄()到其真实地址。虚拟别名的网域虚拟别名邮件待下次的递送机会如果发生永久性问题则要求将信退给发信者。会通知过程发生了暂时性问题而邮件会被保存在延迟队列等对于需要转寄到他处的邮件将会被重新提交回以便传送到新地址。如果递送当因暂时故障不能连接的远程主机恢复连接时会先采取试探性动作以免过多的延迟邮件使对方瘫痪。一开始发现接收方有任何麻烦它会立刻只会搭建有限度的几条连接通道(数量可通过配置文件调整)到收件方在发现对方能够成功收下邮件之后才会慢慢提升连接通道的数量(到一个可设定的上限)相反地如果撤销连接。件放在延迟队列等待下次传送的机会。将邮无法顺利传出邮件它会通知(例如:传真机)。同样如果传给外部的内容过滤程序(例如:病毒扫描系统、垃圾邮件分析程序)或其他通信媒介经常被用来将邮件将邮件传给外部程序。实际上提供了投递延迟队列等待下次传送的机会。将邮件放在会通知投递过程中出了任何问题如果来交付邮件。知道特殊邮箱格式所以只好使用标准的于只有都是让用户用来取信

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/49
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部