很多朋友常犯的错误是“我已经在access中加入了邮件服务器的IP地址,也对数据库文件进行了makemap工作,可依然还是不行”。其实你搞错了,应该加入的是客户机的IP——试着将你的拨号PC的IP加入到access中,makemap后,你不必重新启动Sendmail,试试,发信成功了!
正如前面所说的,如果你是拨号上网,下次拨号,你的IP就会改变,当然你的邮件服务器就又不让你发信了。如果公司的员工常要出差,到外地后,经常是拨通当地ISP来收发邮件。收邮件肯定没有问题,但是,邮件目前SMTP没有进行口令验证,而邮件服务器又要进行转发控制,不对未记录在数据库中的主机转发。所以,邮件是发不出去了。在这种情况下,如果像本文前面所说的那样设置全部转发功能的话,倒是可以让拨号用户发信,但同时,带来的问题就是会有很多Spam,实在是难以做到两全其美。
解决Sendmail 配置有两种方案,一种为采用SMTP认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(DynamicRelayauthorizationcontrol),其工作原理为:拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则DRAC自动在access.db中加入刚才收邮件用户的IP,并允许此IP可以发信。不过,30分钟内,此IP不发/收邮件的话,DRAC将从access.db中删除此IP。此种机制保证拨号用户在没有SMTP认证的情况下,也可以通过远程邮件服务器发送E-mail(详情,请参阅笔者的另一篇文章:利用DRAC杜绝垃圾邮件)。
【编辑推荐】