如何解决JavaMail-SMTP中的延迟通知-Office 365
我正在使用JavaMail连接并验证Office 365中的用户名和密码。
我使用以下Java代码检查连通性,
Properties props = System.getProperties();
props.setProperty("mail.store.protocol","imaps");
props.put("mail.smtp.host","smtp.office365.com");
props.put("mail.smtp.port","587");
props.put("mail.smtp.starttls.enable",true);
props.put("mail.smtp.auth",true);
System.out.println("Before Session... #################################################");
Session session = Session.getInstance(props,new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username_xxxx@xxx.com","password_xxxxx");
}
});
System.out.println("After Session... #################################################");
session.setDebug(true);
Transport transport = session.getTransport("smtp");
System.out.println("Before Connection... #################################################");
transport.connect();
System.out.println("After Connection... #################################################.");
if(transport.isConnected()) {
System.out.println("Connected Successfully : " + transport);
System.out.println("#################################################");
} else {
System.out.println("Not Connected : " + transport);
}
transport.close();
在大多数情况下,transport.connect()会在不到100毫秒的时间内收到问候消息(220)的情况下按预期方式工作,但是有时(例如,在Web服务器上部署了3个小时后) .connect()需要2分钟以上的时间才能发送问候消息
2020-08-23 11:38:16,930 ERROR [stderr] (default task-415) Before transport connection ::: Sun Aug 23 11:38:16 UTC 2020
2020-08-23 11:38:16,931 INFO [stdout] (default task-415) DEBUG SMTP: useEhlo true,useAuth true
2020-08-23 11:38:16,933 INFO [stdout] (default task-415) DEBUG SMTP: trying to connect to host "smtp.office365.com",port 587,isSSL false
2020-08-23 11:40:27,657 INFO [stdout] (default task-415) 220 BL0PR02CA0082.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sun,23 Aug 2020 11:40:27 +0000
我启用了会话日志,我们可能会看到很长时间才能收到11:40:27,657日志(220 BL0PR02CA0082.outlook.office365.com Microsoft ESMTP MAIL服务已准备就绪)。
我进行了一些冲浪,发现根本原因是SMTP服务器https://tools.ietf.org/html/rfc5321#section-4.5.3.2.1在其中可以延迟发送问候消息220!
我们要如何避免这种延误?
感谢任何帮助!
谢谢,
哈里
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。