📄 0380sendmail.htm
字号:
<ul><hr width="100%"><li><b><font color="#000066">建立 M4 参数档:</font></b></li><br>m4 的参数档通常档名均取为 filename.mc 这样的附档名格式,你可以在 /usr/share/sendmail-cf/cf里面找到相当多的范例档案喔!例如 Red Hat 的设定范例文件为 /usr/share/sendmail-cf/cf/redhat.mc(如果是 Red Hat 7.3 以后版本,含 Red Hat 9 ,这个档案则放置在 /etc/mail/sendmail.mc喔!)。这个环境参数设定文件的设定项目很多,其格式为:<ul> <br><font color="#000099" face="SimSun">设定组件(`设定项目', `参数一',`参数二')</font><br><font color="#000000" face="SimSun"> </font></ul>仔细看到上面的例子当中,在设定的组件后面接上小括号,而小括号内则为该设定组件的项目内容,以及该项目内容的参数!而将设定项目与各参数包起来的『并不是单引号』,要注意的是,在『设定项目』左右两边的:<ol><li><font color="#000066">左边的是 quod ,也就是键盘上面数字键 1 的左边那个按键『`』;</font></li><li><font color="#000066">右边的才是单引号『'』。</font></li></ol>这里很容易被搞错!请特别注意,而每个设定项目与参数之间,则是以逗号『,』来做为分隔喔!底下我们谈一谈几个主要的设定组件与各个设定组件底下的设定项目吧!<br> <ul><li><font face="SimSun"><b><font color="#000066">divert</font></b> :这个组件仅是在于提供『<font color="#000066">是否要将说明数据(或者是批注数据)写入输出的档案中</font>』而已,如果在filename.mc 档案当中具有批注符号时,(<font color="#000066">注意, *.mc的批注符号可以是 # 也可以是 dnl 这个字符串!</font>)而你输出资料时不想将这些说明资料也输出,那就可以使用divert (-1) 。反之,如果你想将这些说明数据同时输出,那就使用 divert (0)。由于我们不想要手动修改sendmail.cf ,所以输出的数据当然就不太需要注明啦!只要在环境设定档 *.mc里面说明清楚即可!因此,<font color="#000066">你应该会常常在档案当中看到diver (-1) 才对</font>!范例为:</font></li><ul><font color="#3333ff" face="SimSun"> </font><br><font color="#3333ff" face="SimSun">divert (-1)</font></ul></ul><font face="SimSun"> </font><ul><li><font face="SimSun"><b><font color="#000066">OSTYPE</font></b>:这个组件功能在设定使用的操作系统类别!Sendmail 预设提供数种操作系统的模式,你可以在 /usr/share/sendmail-cf/ostype这个目录当中找到所支持的操作系统模式。因为我们是使用 Linux ,所以范例为:</font></li><br><font face="SimSun"> </font><ul><font color="#3333ff" face="SimSun">OSTYPE(`linux')</font><br><font color="#3333ff" face="SimSun"> </font></ul><li><font face="SimSun"><b><font color="#000066">define</font></b>:这个组件的作用比较多喔!他可以定义出许多有用的sendmail 需要的参数,举个例子来说,如果我要将邮件别名设定档放置在 /etc/aliases底下,那么我可以使用底下的范例:</font></li><ul><font face="SimSun"> </font><br><font color="#3333ff" face="SimSun">define(`ALIAS_FILE', `/etc/aliases')</font><br><font face="SimSun"> </font></ul><font face="SimSun">那个 ALIASE_FILE 就是主要的设定项目啦!而这个项目主要规定邮件者别名的档案所在地,所以啰,后面就直接接上完整的文件名称啦!更多详细的define 说明,可以参考您计算机中的 /usr/share/sendmail-cf/README 这个档案喔!</font><br><font face="SimSun"> </font><li><font face="SimSun"><b><font color="#000066">undefine:</font></b><font color="#000000">恰恰与define 相反啦! Sendmail 预设会支持定义很多的项目,而如果您不需要定义该项目,则可以使用undefine 来将他移除掉喔!例如:</font></font></li><ul><font face="SimSun"> </font><br><font color="#3333ff" face="SimSun">undefine(`UUCP_RELAY')</font><br><font face="SimSun"> </font></ul><li><font face="SimSun"><b><font color="#000066">FEATURE</font></b>:这个组件FEATURE 字面上的意思是『特征、特色』,那也就是说,这个组件里面会规定出sendmail 所额外新增的一些任务啦!这些任务的支持必需要 sendmail 有提供才可以!你可以在/usr/share/sendmail-cf/feature 这个目录当中找到 sendmail 所提供的各个功能喔!举个例子来说,如果我们要规定sendmail 存取权限设定的档案,也就是 /etc/mail/access.db 时,你可以这样写:</font></li><ul><font face="SimSun"> </font><br><font color="#3333ff" face="SimSun">FEATURE(`access_db',`hash-o /etc/mail/access.db')</font><br><font face="SimSun"> </font></ul><font face="SimSun">注意:上面 access_db 是某个任务的项目,而后面接的 hash是数据库格式,至于 sendmail 所使用的数据库则是 /etc/mail/access.db !更多的FEATURE 相关设定项目可以参考 /usr/share/sendmail-cf/README</font><br><font face="SimSun"> </font><li><font face="SimSun"><b><font color="#000066">MAILER:</font></b>这个组件在设定所使用的邮件主机传送邮件(递送,delivery)的代理人,一般而言,我们的代理人都是 smpt 协议啊,不过,如果我们主机内的用户(主机/etc/passwd 存在的实体用户)想要使用 sendmail 来寄信,那是否仍然要透过 smtp这个代理人呢?不太需要的, sendmail 本身就提供发信的功能,而要让主机上面的实体用户可以在登入主机环境的中使用sendmail ,那你就必需要启动 local 这个本地端的邮件递送功能啦!因此,通常这个组件会设定为:</font></li><ul><font face="SimSun"> </font><br><font color="#3333ff" face="SimSun">MAILER(local)</font><br><font color="#3333ff" face="SimSun">MAILER(smtp)</font><br><font color="#3333ff" face="SimSun"> </font></ul><font color="#000000" face="SimSun">如此一来,当 sendmail 发现信件来自于主机内部,那就会使用local 来传送信件,当信件来自于主机外部时,那才会使用 smpt 协议来寄信喔!未来还可以新增procmail 这个 MDA 呢! sendmail 支持的 MAILER 可以在 /usr/share/sendmail-cf/mailer这个目录中查询的到!</font><br><font color="#000000" face="SimSun"> </font></ul>各个设定组件我们先介绍到这里,至于更详细的说明,请务必到 /usr/share/sendmail-cf/README这个档案当中寻找!至于其它更完整与新鲜的 M4 设定项目,请到 <a href="http://www.sendmail.org/m4/readme.html" target="_blank">http://www.sendmail.org/m4/readme.html</a>查询喔!底下我们来聊一聊这个环境参数档设定完毕之后(或者称为 M4 scripts),要怎样来『制作』sendmail.cf 呢?<br> <br><hr width="100%"><li><b><font color="#000066">m4 程序的执行</font></b></li><br> <br>m4 程序在执行的时候,必需要先读入相关的参数项目才行,这个参数项目在/usr/share/sendmail-cf/m4/cf.m4 这个档案当中,因此,如果你的 *.mc 档案里面没有这一行:<ul> <br><font color="#3333ff" face="SimSun">include(`/usr/share/sendmail-cf/m4/cf.m4')</font><br><font color="#3333ff" face="SimSun"> </font></ul>那么你就必需要执行两个档案的 m4 转换,否则只要执行一个即可!假设您的 m4script 档名为 redhat.mc ,那么您可以这样转换 sendmail 所需要的 sendmail.cf:<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">Red Hat 7.2以前版本:</font><br><font size="-1" color="#ffffcc" face="SimSun">1. 若 redhat.mc里面没有 include 的项目,则:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">cd /usr/share/sendmail-cf/cf</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testcf]# </font><font color="#ffff00">m4 /usr/share/sendmail-cf/m4/cf.m4 \</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">></font><font color="#ffff00"> redhat.mc > redhat.cf</font></font><br><font size="-1" color="#ffffcc" face="SimSun"> </font><br><font size="-1" color="#ffffcc" face="SimSun">2. 若 redhat.mc里面已经包含了 include 的项目,则:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testcf]# </font><font color="#ffff00">m4 redhat.mc > redhat.cf</font></font><br><font size="-1" color="#ffff00" face="SimSun">  </font><br><font size="-1" color="#ffffcc" face="SimSun">Red Hat 7.3(含 Red Hat 9) 以后版本:</font><br><font size="-1" color="#ffffcc" face="SimSun">1. 若 sendmail.mc里面没有 include 的项目,则:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">cd /etc/mail</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testmail]# </font><font color="#ffff00">m4 /usr/share/sendmail-cf/m4/cf.m4\</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">></font><font color="#ffff00"> sendmail.mc > redhat.cf</font></font><br><font size="-1" color="#ffffcc" face="SimSun"> </font><br><font size="-1" color="#ffffcc" face="SimSun">2. 若 sendmail.mc里面已经包含了 include 的项目,则:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testmail]# </font><font color="#ffff00">m4 sendmail.mc > redhat.cf</font></font></td></tr></tbody></table> <br>上面制作而成的 redhat.cf 就是 sendmail.cf 的内容啦!然后请将你的 sendmail.cf备份,举个例子来说, Red Hat 的 sendmail.cf 在 /etc/ 底下,所以我可以这样做:<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testcf]# </font><font color="#ffff00">mv /etc/sendmail.cf /etc/sendmail.cf.old</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testcf]# </font><font color="#ffff00">cp redhat.cf  /etc/sendmail.cf</font></font><br><font size="-1" color="#ff6666" face="SimSun"># 若是 RedHat 7.3 以后版本,则</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testmail]# </font><font color="#ffff00">cp redhat.cf  /etc/mail/sendmail.cf</font></font></td></tr></tbody></table> <br>这样就成功啦!<br> <br><hr width="100%"><li><a name="server_settings_redhat7.x"></a><b><font color="#000066">修改
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -