请在localhost之后加上我们那一台机器所有可能用来当收信地址的主机的名字。例如,在局域网络Virtual Brewery中的一台机器叫:vlager.vbrew.com,而且也叫gopher.vbrew.com,而该网络的管理员希望这一台机器的这两个名字都能收信,那么他需要这样修改sendmail.cf文件: Cwlocalhost vlager.vbrew.com gopher.vbrew.com 上面只是一种简便的方法,如果系统中运行着DNS,我们可以通过DNS来解析主机别名(如下所示),而不用加上主机别名gopher.vbrew.com。如果没有运行DNS,那么必须将本机器的所有名字都写上。 如果用作邮件服务器的主机有多个名字(hostname),例如: vlager IN A 191.72.1.1 gopher IN CNAME vlager 那么我们可以不必在Cw上标明,系统会透过DNS 找到它的别名 如果一台机器有多个名字,但是每一个别名是用A record 建立的,例如:
vlager IN A 191.72.1.1 gopher IN A 191.72.1.1 在这种情况下【一定】要记得在Cw后写上所要收信主机的名字。如果忘 记了,那么从外面寄来的以别名为地址的信件将无法正常接收,机器会抱怨: “Local configuration error” 例如,如果在sendmail.cf中的Cw这行是Cw vlager.vbrew.com,那么局域网Virtual Brewery中的用户将无法使用邮件地址 username@gopher.vbrew.com 而只能用username@vlager.vbrew.com,否则将出现上述错误。 如果一台机器有多interface,各interface有其本身的名字,而且要收信。 这种情况也要在Cw之後写明所有要收信的hostname。 在我们的例子中F命令是作为注释处理的,如果去掉它前面的“ sendmail将从/etc/sendmail.cw中读取主机的别名,并将别名储存在类w中。将F命令做注释处理,并让sendmail在内部定义别名这是一种最常用的方法。 打开/etc/mail/access文件时,会看到(注意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或检查是否安装正常):
To: lack@vlager.vbrew.com From:janet Subject:Test for sendmail
Lack,please reply if you see this,Thanks.
^D lark@ vlager.vbrew.com…..Connecting to vlager.vbrew.com via t cp… Trying 191.72.1.1 ….connected. 220 VLAGER.VBREW.COM on Web, 30 Sep 99 16:23:23 CST >>> HELLO maths.groucho.edu 250 VLAGER.VBREW.COM is my domain name >>> MAIL From:< gauss.maths.groucho.edu.> 250 OK >>> DATE 354 Enter mail body, End by new line with just a ‘.’ >>>. 250 Mail Delivered >>> QUIT 221 VLAGER.VBREW.COM closing connection lack@vlager.vbrew.com …sent 我们在CTRL-D之前输入所有的内容,而sendmail则显示^D之后的内容。通过对sendmail的测试,我们就可以发现潜在的配置问题,并使用sendmail提供的一些附加查错工具解决这些问题。