分类: LINUX
2007-05-14 20:50:55
Sendmail的功能
1. 接受SMTP邮件
2. 为邮件选择路有
3. 传输SMTP邮件
4. 使用邮件别名,从而允许使用邮件列表
5. 错误检测以及速度和代价优化
Sendmail的结构和处理过程
电子邮件使用各种程序和协议使得配置和支持更加复杂化。当SMTP在TCP/IP网络上发送电子邮件时,另一个程序可在同一个系统的不同用户之间发送邮件,同时有可能还有一个程序在UUCP网络上发送邮件。其中的每一个邮件系统(SMTP、UUCP和本地邮件)都有各自的传输程序和寻址方式,所有这些都会造成邮件用户和系统管理的混乱。但是,sendmail可以消除多个邮件程序传输带来的混乱。
Sendmail的工作方式是根据用户的电子邮件的地址,为用户的邮件选择一条到达适当的传输程序的路由。它接受一个来自MUA的邮件,解释其邮件地址,将该地址重新改写成合适下一个传输程序的格式,然后引导邮件到达正确的传输程序。Sendmail将最终用户与这些细节隔离。如果邮件地址正确,sendmail就认为其可以正确的发送并进行传输。同样,对于一个进入的邮件,sendmail将先解释其地址,然后将邮件传送到用户的邮件程序或发送到另一个系统。
当sendmail调用local传输程序时,sendmail会试图将邮件发送到接受用户的邮箱,就是/var/spool/
当sendmail调用的是TCP/IP邮件传输程序,它就会向远端主机的TCP25端口请求建立连接,如果连接成功,将使用SMTP协议进行邮件传输。如果连接失败(可能有多种原因,最常见的原因是对方主机已经关机),sendmail就将邮件放在邮件队列中(/var/spooling/mqueue),等晚些时候再重新发送(默认为1小时)。默认情况下,邮件在队列里保持3天,3天之后将自动删除,并将邮件退还给发送者。当在邮件处理过程中出错时 ,sendmail将邮件重发。