邮件服务器向hotmail等邮箱发信收到退信的解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34396103/article/details/85171085
 
 
最近笔者想组建一个邮件服务器,正好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等邮箱发信了。
我估计许多邮件服务器,都会碰到与我这样的问题,所以,特地记录下来,与大家共享。
展开阅读全文

javamail访问hotmail邮箱的问题

05-12

写了一个javamail访问hotmail邮箱的程序,密码正确,但是就是发送失败,代码如下rnrn public static void main(String[] args) rn Properties props = new Properties();rn props.put("mail.davmail.from", "帐号");rn props.put("mail.smtp.auth", "true");rn Session s = Session.getInstance(props,new Authenticator() rn public PasswordAuthentication getPasswordAuthentication() rn return new PasswordAuthentication("帐号","密码"); rn rn ); rnrn MimeMessage message = new MimeMessage(s);rn InternetAddress from;rn try rn from = new InternetAddress("帐号");rn message.setFrom(from);rn message.setSubject("111111111111111111111111111...");rn BodyPart bodyPart = new MimeBodyPart();rn bodyPart.setContent("",rn "text/html;charset=utf-8"); rn Multipart mp = new MimeMultipart();rn mp.addBodyPart(bodyPart);rn message.setContent(mp);rn Transport transport = s.getTransport("davmail_xmit");rn transport.connect(null, "帐号","密码");rn InternetAddress to = new InternetAddress("接收者帐号");rn message.addRecipient(Message.RecipientType.TO, to);rn transport.sendMessage(message, message.getAllRecipients());rn transport.close();rn System.out.println("发送成功");rn catch (Exception e) rn e.printStackTrace();rn System.out.println("发送失败");rn rnrnrn帐号正确,但是发不出去,只有很少几个邮箱才能发送出去?哪位高手可以解释一下? 网上说现在微软禁止免费的hotmail使用outlook等工具来,是不是 javamail 也不可以访问hotmail邮箱里呢? 论坛

没有更多推荐了,返回首页