当前位置:操作系统 > Unix/Linux >>

清华水木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脚本产生的命令行输入并

  把输入合并到相应的宏和类。本文来自:http://www.xiaoyaxiao.com/4290.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,