BBS水木清华站∶精华区

发信人: scaner (P.o.t.S), 信区: Linux 
标  题: Sendmail Enable RELAY mini Howto 
发信站: BBS 水木清华站 (Fri Dec 11 23:12:59 1998) 
 
本文主要是解决高版本的sendmail(8.8.7以上)不能转发油件的问题. 
先简单提一下转发的概念.所谓转发,就是指通过这台Mail server 
发送目的地是别的Mail server的油件.打个比方,有两台服务器 
a.mail.org和b.mail.org,一封To: some@b.mail.org,可以先 
发给A.mail.org,然后由A.mail.org发给B.mail.org.这个过程就是转发(relay). 
使用一般的Mail Client实际上就是有一个转发过程,他不是 
直接将信发往目的服务器,而是本地的Mail server,再通过 
本地的Mail Server将信发送出去.随着网络安全等等问题 
渐渐得到重视,转发功能也由缺省允许变成缺省禁止. 
 
放开禁止的办法很多,首选是正确配制/etc/mail目录下的 
几个文件.sendmail是通过类(Class)配合重写规则(rewrite rule) 
来进行地址检查控制的,所以配制文件必须按照要求的格式来写. 
一般的方法是将本地地址加入/etc/mail/ip_allow中, 
格式如下: 
A. 
A.B. 
A.B.C. 
A.B.C.D 
其他的子网表达方式都是非法的.    
 
一个例子就是: 
202.119.65. 
202.119.66. 
这样所有202.119.65.0-202.119.66.255的Mail client 
都能通过我的Mail Server转发油件. 
 
另一种方法是添加目的域名到relay_allow 
中,比如将 
mere.ml.org 
test.org 
加如relay_allow中, 
所有法往someone@mere.ml.org或something@test.org都将 
被允许转发. 
                   
 
如果你所希望的是一种开放式的服务,不进行任何检查, 
那重新生成sendmail.cf将是很不错的选择. 
 
就以redhat为例,先安装sendmail-cf这个rpm包, 
到/usr/lib/sendmail-cf目录下仔细阅读一下 
README和README.check, 
然后到cf目录中,编辑redhat.mc,将所有关于地址检查 
的选项都删除掉,然后用命令 
m4 ../m4/cf.m4 redhat.mc > redhat.cf 
如果一切正常,redhat.cf就是生成的sendmail.cf 
复制到/etc/sendmail.cf后,重启动一次sendmail 
就可以了.      
 
最后说上两句:Sendmail的检查功能十分强大,如果有 
必要甚至可以做地址检察数据库. 
不过个人还是比较喜欢qmail,简单易用,配置方便,没有 
头疼的rewrite rule,可惜家里最后还是选择了sendmail 
就是因为sendmail的rewrite rule实在太cool了,想干 
什么就干什么,比较合适个人定制使用. 
-- 
#telnet I.want.to.go 
telnet: Unable to connect to remote host: No Route to host 
 
※ 修改:·scaner 於 Dec 11 23:16:57 修改本文·[FROM:   202.119.79.67] 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.119.79.67] 

BBS水木清华站∶精华区