最近笔者想组建一个邮件服务器,正好Exchange Server 2010发布了正式版,就第一时间从MSDN站点下载到该软件,在单位的一台服务器上,安装配置好,能收信、并能向本校的邮件服务器发信。但在向hotmail.com等邮箱发信时,收到退信,主要内容如下:
snt0-mc2-f11.Snt0.hotmail.com 提供了此错误:
DY-001 Mail rejected by Windows Live Hotmail for policy reasons. We generally do not accept email from dynamic IP's as they are not typically used to deliver unauthenticated SMTP e-mail to an Internet mail server. http://www.spamhaus.org maintains lists of dynamic and residential IP addresses. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and support
从退信中可以看到,我的邮件服务器的IP地址在http://www.spamhaus.org列表中是一个动态的IP地址,hotmail拒绝http://www.spamhaus.org列表中的邮件服务器发出的信件。知道问题的原因后,我登录http://www.spamhaus.org检查,发挥我的邮件服务器的地址(124.aa.bb.126)在PBL列表中,如图1所示。
clip_image001
图1 邮件服务器在PBL列表中
然后,我按照网站的操作,从PBL列表中移除了我的邮件服务器的地址,在大约20分钟左右,检查PBL列表,我的邮件服务器的地址已经移除。
但是,我再向hotmail.com的邮箱发信时,仍然收到同样的退信。我想,难道hotmail邮件服务器会“缓存”PBL列表?这应该不可能吧,hotmail邮件服务器应该是实时检查SBL、XBL、PBL和ROKSO列表的。那么问题出在那呢?
后来,经过一番思索,问题得以解决。我的邮件服务器放在内网,是局域网的地址,我请网管中心的同事在学校出口的防火墙“映射”了一个公网的地址到我的邮件服务器,并且把这个公网的地址设置为我邮件服务器的MX记录,作为我邮件服务器对外的地址。但是,我的邮件服务器在访问Internet网络的时候,并不是用映射的公网地址“出去”的,则是与其他内网计算机一起,使用防火墙的一个公共的、对外出口地址访问Internet的,而这两个地址并不是同一个地址(这个地址是124.aa.bb.121),而这个地址也在PBL列表中。
知道问题的原因后,就很好解决了,从http://www.spamhaus.org的PBL列表中,移除124.aa.bb.121这个地址,邮件服务器可以向hotmail、QQ等邮箱发信了。
我估计许多邮件服务器,都会碰到与我这样的问题,所以,特地记录下来,与大家共享。