<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/G.929104249.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.5726" name=GENERATOR></HEAD>
<BODY><PRE>发信人: albin (阿乐斌), 信区: LINUX
标 题: LINUX选修课讲义:sendmail.cf生成器说明(1)
发信站: 碧海青天 (Fri Jun 11 21:34:40 1999), 转信
版权声明:
本文内容为大连理工大学LINUX选修课讲义,欢迎大家转载,但禁止使用本材料进行
任何商业性或赢利性活动。转载时请保留本版权声明。
作者:何斌武,hbwork@dlut.edu.cn,大连理工大学网络中心,April 1999.
URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/
原著: Eric Allman <eric@Sendmail.ORG>
------------------------------------------------------------------------------
感谢我的导师钱飞教授(http://come.or.jp/~fei/)多年来对大工校园网建设的无私帮
助及对我的热心指导,在他的帮助下,大工校园网建设取得了一定的成绩,我也从他那学
到了很多,不仅是专业方面的知识,更多的是如何待人,如何作人。
--------------------------------------------------------------------------------
定制自己的sendmail配置文件sendmail.cf
一.M4 的简要介绍
Sendmail使用M4宏处理器来“编译”其配置文件。对于M4来说,最重要的是要知道
M4是基于流处理的,也就是说,M4并不理解行内容。因此在一些地方你可能看到类似于
类似于表示"delete through newline"的词dnl;在M4可通过使用dnl删除所有以dnl开始
的包括换行符的所有字符。在大多数情况下sendmail使用这一功能以避免在其输出中含
有过多的不必
要的空行。
其他重要的指令(directive)是define(A,B),可用此指令定义宏A的值为B。当读到这
些宏的时候将会进行宏扩展,但可使用对两个值均用单引号以防止扩展。如下所示:
define('SMART_HOST','smart.foo.com')
警告:M4的宏即使在注释行中也将进行扩展,如下行:
# See FEATURE(foo) above
在其输出结果中并不会以你所期望的形式出现,因为M4将会对FEATURE(foo)进行扩展,
这一情况同样适用于如下情况:
# And then define the $X macro to be the return address
因为define是M4的一个保留关键字。如果你想使用M4关键字则应用单引号将其包含起来
,如'like this'.
二、定义操作系统类型变量:OSTYPE
在定义文件中必须定义一个操作系统环境变量,否则配置文件的生成将会中断(puke).
有若干个操作系统环境变量可用,具体可到ostype目录下查看当前可用变量的列表。这一
变量将会更改象别名文件及邮件排队目录等的位置。这些文件中的一部分是彼此相同的。
在定义文件中OSTYPE必须在所有的MAILER定义之前。通常情况下,OSTYPE宏定义应
紧跟在版本(version)信息之后,而MAILER定义总是在定义文件的最后。
一般情况下操作系统定义写起来。他们可以定义如下变量(如所有的均使用默认值则
相应的ostype文件可以为空)。但因为所列出的已支持操作系统不象源代码支持系统那样
广泛,因此在源代码中可能并未包括相应的ostype文件。
变量名 说明(方括号中为默认值)
ALIAS_FILE [/etc/aliases] 文件格式的alias文件位置。可以使用 以逗号分开的文件名列表(但要确认使用引号将含有逗
号的值括起来,如:define('ALIAS_FILE','a,b'),将 a,b作为alias文件的列表,如未引号则define()只能看 到一个"a")
HELP_FILE [/usr/lib/sendmail.hf] 此文件中含有对SMTP的HELP 命令进行响应时要列出的信息。
QUEUE_DIR [/var/spool/mqueue]邮件队列文件所在目录
STATUS_FILE [/etc/sendmail.st]此文件中含有状态信息
LOCAL_MAILER_PATH [/bin/mail]用于投递本地邮件的程序
LOCAL_MAILER_FLAGS [rmn]local mailer要用到的标志,永远包含标志lsDFM。
LOCAL_MAILER_ARGS [mail -d $u]在投递本地邮件时所传送的参数。
LOCAL_MAILER_MAX [undefined]如定义了此参数,则为此邮件服务器所能接收 的本地邮件大小。
LOCAL_MAILER_CHARSET [undefined]如果定义了此参数,则被转化为MIME格式的从 其他地址到local mailer的含有8位字符的信息将被标为此 字符集。
LOCAL_SHELl_PATH [/bin/sh]用于投递经过管道处理的邮件的shell.
LOCAL_SHELL_FLAGS [eu]prog mailer用到的标志。在此标志中永远包含标志 lsDFM.
LOCAL_SHELL_DIR [$z:/]shell运行时所要查找的目录路径。
USENET_MAILER_PATH [/usr/lib/news/inews]用于提交news的程序名称。
USENET_MAILER_FLAGS [rlsDFMmn]usenet mailer的投递标志。
USENET_MAILER_ARGS [-m -h -n]usenet mailer的命令行参数。
USENET_MAILER_MAX [100000]usenet mailer所能接收的最大信息大小。
SMTP_MAILER_FLAGS [undefined]SMTP mailer附加标志。对所有基于SMTP的 mailer其默认标志为mDFMUX;基于esmtp的邮差(mailer)
加上'a'标志;而基于"smtp8"的邮差则加上'8'。
SMTP_MAILER_MAX [undefined]使用smtp,smtp8或esmtp邮差所能传输的信息最 大容量。
SMTP_MAILER_ARGS [IPC $h]传递给smtp邮差的参数。仅当您需要改变默认端口 时才需要更改此参数。
ESMTP_MAILER_ARGS [IPC $h]传递给esmtp邮差的参数。
SMTP8_MAILER_ARGS [IPC $h]传递给smtp8邮差的参数。
RELAY_MAILER_ARGS [IPC $h]传递给relay邮差的参数。
SMTP_MAILER_CHARSET undefined]如果定义了此参数,则被转化为MIME格式的从 其他地址到任一个smtp mailer的含有8位字符的信息将被标 为此字符集。
UUCP_MAILER_PATH [/usr/bin/uux]用于发送uucp邮件的程序。
UUCP_MAILER_ARGS [undefined]
UUCP_MAILER_ARGS [uux - -r -z -a$g -gC $h!rmail ($u) ]
UUCP_MAILER_MAX [100000]
UUCP_MAILER_CHARSET [undefined]
FAX_MAILER_PATH [/usr/local/lib/fax/mailfax]用于提交FAX信息的程序。
FAX_MAILER_ARGS [mailfax $u $h $f]传递给FAX邮差的参数。
FAX_MAILER_MAX [100000]FAX所能接收的最大信息容量。
POP_MAILER_PATH [/usr/lib/mh/spop]pop邮差的路径名。
POP_MAILER_FLAGS [Penu]pop邮差附加标志。同时总是加上标志lsDFM。
POP_MAILER_ARGS [pop $u]传给pop邮差的参数。
PROCMAIL_MAILER_PATH [/usr/local/bin/procmail]procmail程序的路径名。此外
FEATURE(local procmail)也用到此参数。
PROCMAIL_MAILER_FlAGS [SPhnu9]加给Procmail邮差的标志。同时总是加上"DFM"标
志。但FEATURE(local procmail)不用此参数而用到参数
LOCAL_MAILER_ARGS.
PROCMAIL_MAILER_MAX [undefined]procmail邮差所接收的最大信息容量。
MAIL11_MAILER_PATH [/usr/etc/mail11]
MAIL11_MAILER_FLAGS [nsFx]
MAIL11_MAILER_ARGS [mail11 $g $x $h $u]
PH_MAILER_PATH [/usr/local/etc/phquery]phquery程序的位置。
PH_MAILER_FLAGS [ehmu]
PH_MAILER_ARGS [phquery -- $u]
CYRUS_MAILER_FLAGS [A5@]
CYRUS_MAILER_PATH [/usr/cyrus/bin/deliver] The progam used to deliver
cyrus mail.
CYRUS_MAILER_ARGS [deliver -e -m $h -- $u] The arguments passed to
deliver cyrus mail.
CYRUS_MAILER_MAX [undefined] If set, the maximum size message that
will be accepted by the cyrus mailer.
CYRUS_MAILER_USER [cyrus:mail] The user and group to become when
running the cyrus mailer.
CYRUS_BB_MAILER_FLAGS [undefined] The flags used by the cyrusbb mailer.
The flags lsDFMnP are always included.
CYRUS_BB_MAILER_ARGS [deliver -e -m $u] The arguments passed to deliver
cyrusbb mail.
三、定义域:DOMAIN
可以将所有于网域(DOMAIN)有关的定义写入一个文件,在定义文件中使用宏
DOMAIN来引用此文件。比如,在示例文件Berkeley域文件中包含了若干内部目标主机的定义。
UUCP_RELAY 这个主机接收UUCP格式的邮件。如果未定义,则所有的UUCP
必须直接相连。
BITNET_RELAY 这个主机接收 BITNET地址格式的邮件。如果未定义此变量
则.BITNET伪域格式的邮件不能工作。
DECNET_RELAY 接收DECNET地址格式邮件的主机。如果未定义,则.DECNET
伪域格式及node::user格式的邮件不能工作。
FAX_RELAY 接收到.FAX伪域邮件的主机。在定义文件中的fax邮差将会 覆盖此值。
LOCAL_RELAY
Linux 服务配置实例
4星 · 超过85%的资源 需积分: 12 19 浏览量
2009-09-12
12:53:47
上传
评论
收藏 777KB RAR 举报
梦幻
- 粉丝: 17
- 资源: 22
最新资源
- 细胞的奇迹:吃出来的免疫力(美亚畅销书!作者的TED演讲播放量超300万次!《谷物大脑》作者、《三联生活周刊》推荐!吃下对的食物,改善你的... (Z-Library).azw3
- 智能手机产品拆解,使用mindmaster打开
- 11111111111111
- 统信系统ARM64依赖openssl-1.0.2版本的libssl.so.10和libcrypto.so.10文件
- 奥比中光python sdk
- 冯超楠17.py
- OCR识别-基于视觉注意力机制Attention实现的OCR识别算法-附项目源码-优质项目实战.zip
- Java 使用蒙特卡洛方法估算PI的近似值(源代码)
- main.cpp
- 电子木鱼小程序源码电子木鱼小程序源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈