当前位置:Linux教程 - Linux - 清华水木sendmail教程(2)

清华水木sendmail教程(2)

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在每次启动的时候都要读去该文件。

s清华水木sendmail教程(2)
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脚本产生的命令行输入并
把输入合并到相应的宏和类。