[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 应用专题 > Mail > 正文

SENDMAIL HOWTO 中文版--4.设置 Sendmail

来源:作者: Wuxuehui Wuxuehui@games.net.cn (2001-05-23 18:08:00)


4.1 设置Sendmail.cf
产生出来的YYY.cf一般得要改个地方才能正常的收信。请寻找"Cw",原来产生的.cf 档,Cw应是:Cwlocalhost
请在localhost 之後加上你那一台机器所有可能用来当收信地址的host name 。 
例如我有一台机器叫:ftp.games.net.cn,而且也叫:gopher.games.net.cn,
而我希望这一台机器这两个名字都能收信,那我要这么作: 
Cwlocalhost ftp.games.net.cn gopher.games.net.cn 

顺便说一下,Cw之後只能写入本机器的名字,千万不能写入其他机器的名字,否则,甚麽地方都能寄,那被写的就 
一定不能寄。

上面其实是简略的说法,如果你对DNS 也熟悉的话,可参考这节来作判断,判断是否须要在Cw之後写入东东。否则 
请直接跳过这一小节,闭上眼睛把本机器所用的所有名字都写上就是了:) 

1.在一台机器上,如果有多个名字(hostname),而是用CNAME 建立的,如: 
$ORIGIN games.net.cn
ftp IN A 140.119.1.2 
gopher IN CNAME ftp 

那麽可以不必在Cw上标明。系统会透过DNS 找到其 Canonical name。 

2.如果一台机器有多个名字,可是,每个名字是用A record 建立的。如: 
$ORIGIN games.net.cn.
ftp IN A 192.168.25.2 
gopher IN A 192.168.25.2
这种情况【一定】要记得在Cw後写上你所要收信的名字。如果这个忘了写,会有怎样的问题呢? 
忘了将会有从外面机器寄信来,没有写上的机器名将却收不到信,机器会抱怨: 
"Local configuration error" 。 

如:我的sendmail.cf中的Cw这行是如下: Cw games.net.cn
那我将无法使用这个地址: 
username@games.net.cn
而只能用 
username@ftp.games.net.cn 否则将出现上述错误。 

如果发现了错误,那再加上去也就可以了。 

3.如果一台机器有多interface ,各interface有其本身的名字,且要收信。
这个情况也要在Cw之後写明所有要收信的hostname。


ok!一个标准的sendmail.cf文件就设置完了! 

4.2 设置access

打开/etc/mail/access,你会看到 (注意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或检查是否安装正常)

# Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain                      RELAY
localhost                                  RELAY

如果您的IP地址是192.168.25.11的话,这样请在最后一行加上192.168.25.11       RELAY
其文件的最后三行应是:

localhost.localdomain                      RELAY
localhost                                  RELAY
192.168.25.11                              RELAY

加上这句话您就可以用sendmail发送接收mail了!但是如果您想让别人也可以使用sendmail的话,
他的IP是202.168.25.22,这样就在在最后一行加入202.168.25.22       RELAY
其文件的最后四行应是:

localhost.localdomain                      RELAY
localhost                                  RELAY
192.168.25.11                              RELAY
192.168.25.22                              RELAY

我想,您现在一定有个疑问是,如果我想设置50个人用sendmail是不是需要加50个IP啊!?
嘿嘿,不用啦,是这样,sendmail考虑到多用户的时候,它准许你添入整个C类地址,(B类好像也可以,我没try过!)
其格式如下:

localhost.localdomain                      RELAY
localhost                                  RELAY
192.168.25                                 RELAY

这样,您就是把192.168.52这整个C都加入的sendmail中,这个C类地址的用户,如果在你的系统里有账号的话,
就可以使用sendmail收发信件了!

4.3 设置pop3

如果您需要pop3来接收信件,您需要打开pop3端口,

vi /etc/inetd.conf 查找到

# pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

把#号删掉。

vi /etc/services 查找到

#pop-3         110/tcp                # POP version 3


把#号删掉。

这样,在restart inetd后,pop3 110端口就可以接信了!如果还是不行,请检查是否安装pop3端口!

4.4 如何restart sendmail;inetd以及注意事项

有一点要提醒大家的,要用"kill -9 [pid-of-sendmail]" ,从新启动sendmail
如果用 kill -HUP 是不会发生作用的! (这是颇多人常遇到的问题,切记!)

在redhat6中用/etc/rc.d/init.d/sendmail restart即可!

inetd是
/etc/rc.d/init.d/inetd restart
(http://www.fanqiang.com)



 
 相关文章

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com