BBS水木清华站∶精华区

发信人: bro (阿飞*桃谷小仙:PP), 信区: Unix 
标  题: sendmail(1) 
发信站: BBS 水木清华站 (Fri Nov  6 13:58:54 1998) 
 
sendmail工作原理 
 
明白sendmail工作原理需要弄懂一大堆东东,象守护进程,脚本,文件,以及命令. 
下面介绍一下这些东东. 
 
sendmail守护进程 
 
如果要sendmail处理发送来的信件,必须有一个守护进程在运行。sendmail守护 
进程就是带有特殊标志位的sendmail程序。这个守护进程是被/etc/init.d/mail 
脚本在系统启动的时候自动启动的.在此脚本中用来启动sendmail的命令如下: 
/usr/lib/sendmail -bd -q15m  
-bd标志是使sendmail作为一个守护程序运行。-q15m标志使sendmail fork出一个 
子守护进程来每隔15分钟处理一次消息队列. 
 
sendmail脚本  
 
在一般的系统中(象我用的IRIS 6.3)随sendmail提供的有两个脚本来完成一些 
通用的功能。尽量去使用这两个脚本来完成你的任务,因为它们是经过测试可以 
正确执行的。 
 
/etc/init.d/mail  
 
用户很少需要去手动启动或者停止sendmail.只有在当要改变设置等情况下,你 
必须终止所有运行的sendmail进程,"冻结(refreeze)"设置文件,然后重新启动 
sendmail以使新的设置生效。要简化该工作,系统提供了一个脚本/etc/init.d/ 
mail.这个脚本只有一个参数,start|stop,用来启动或者关闭sendmail进程。 
要停止sendmail进程,用以下命令: 
 
/etc/init.d/mail stop  
 
但你必须是root才可以有这个权限。如果用start参数来启动/etc/init.d/mail, 
它检查sendmail相关文件和目录的权限和存在与否。如果需要的东东,例如 
/var/spool/mqueue目录不见乐,这个脚本就创建它。而对其他一些复杂的 
东东,例如/etc/aliases,该脚本就退出并给出一个提示。 
当/etc/init.d/mail stop 命令被执行的时候,它向所有的sendmail进程发出 
SIGTERM信号来终止它们。 
系统在启动和终止的时候也是调用乐/etc/inin.d/mail start|stop.如果该 
系统在verbose模式下运行,下面的信息回显示,证明sendmail已经启动乐. 
Mailer daemons: sendmail 
 
/usr/etc/configmail  
 
/usr/etc/configmail脚本提供了在命令行输入和sendmail.cf文件之间的接口. 
它把宏和类定义从管道输入到sendmail.params文件中去.该脚本简化了sendmail 
设置. 
configmail脚本允许用户更改和设置几个sendmail参数.这些参数相当与sendmail 
.cf中的宏和类. 你可以验证当前的参数设定,设置特定参数,运行一个快速设置 
命令,和得到一些在线帮助。configmail把你做的改变保存在senmail.params 
文件中。sendmail在每次启动的时候都要读去该文件。 
 
sendmail相关的文件和目录 
 
sendmail的设置文件和目录是 
     /etc/sendmail.cf 
     /etc/sendmail.fc 
     /etc/sendmail.hf 
     /etc/sendmail.st 
     /etc/aliases 
     /var/spool/mqueue 
     /var/mail 
 
/etc/sendmail.cf  
sendmail程序的核心是senmail设置文件/etc/sendmail.cf.该文件是一个ASCII 
文件,包含了绝大多数设置信息.sendmail在每次启动的时候都要读取它.它包括 
选项,头定义,发送程序定义,信任用户定义,消息优先级别,重写地址规则,宏定义 
和类定义. 
作为一个mail管理员,你必须了解要改变sendmail.cf的哪些宏和变量.sendmail.cf 
文件利用sendmail可以从管道读取宏和类定义的能力简化了senmail设置过程。 
该文件接受sendmail.params和/usr/etc/configmail脚本产生的命令行输入并 
把输入合并到相应的宏和类。 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: iris.sist.tsing] 

BBS水木清华站∶精华区