答案:答:sendmail的工作方法是根据用户的电子邮件的地址,为用户的邮件选择一条到达适当的目的传输程序的路由。它接收一个来自MUA的邮件,解释其邮件地址,将该地址重新改写成合适下一个传输程序的格式,然后引导邮件到达正确的传输程序。sendmail将最终用户与这些细节隔离。如果邮件地址正确,sendmail就认为其可以正确地发送并进行传输。同样,对于一个进入的邮件,sendmail将先解释其地址,然后将邮件传送到本地用户的邮件程序或发送到另一个系统。当sendmail调用一个本地投递代理时,sendmail会试图将邮件发送到接收用户的邮箱,即/var/spool/。只要用户合法,而且有足够的邮箱空间,一般总是可以成功的。如果用户不合法,则邮件就可能被退回。此后,接收者只要启动一个MUA就可从邮箱中读取信件。当setadmail调用的是TCP/IP邮件传输程序时,它就会向远端主机的TCP 25端口请求建立连接。如果连接成功,将使用SMTP协议进行邮件传输;如果连接失败(可能有多种原因,最常见的原因是对方主机已经关机),sendmail就将邮件放在邮件队列中(/var/spool/mqueue),等晚些时候再重新发送(默认为1小时)。默认情况下,邮件在队列里保持3天,3天之后将其自动删除,并将邮件退还给发送者。当在邮件处理过程中出错时,sendmail将重发邮件。管理员可以通过修改/etc/sysconfig/sendmail文件中的QUEUE=1h设置邮件队列中邮件的发送周期,并可以使用mailq命令查看邮件队列/var/spool/mqueue。要查看sendmail自运行开始直到目前为止收发信件的统计信息可以使用mailstats命令读取非文本文件/etc/mail/statistics的内容。