有一家odm的服務器用Javamail發郵件的時候報錯 Authentication unsuccessful 其他的有些又是正常的
網上查了一下解決方法如下
JavaMailSenderImpl認證異常了,出現:javax.mail.AuthenticationFailedException: failed to connect的異常,
將JAVAMAIL的DEBUG日志打開,通過properties.setProperty("mail.debug", "true");可以看到出現了535 5.7.3 Authentication unsuccessful的問題,需要增加以下設置:
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.auth.mechanisms", "NTLM");
就可以解決了,如果非WINDOWS操作系統,需要將NTLM修改為digest方式;
具體代碼如下:
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.auth.mechanisms", "NTLM"); //如果不行改為digest再試試
//properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.debug", "true");
senderImpl.setJavaMailProperties(properties);
senderImpl.setHost("IP地址");
senderImpl.setUsername("認證用戶郵箱");
senderImpl.setPassword("對應的郵箱密碼");
//senderImpl.setPort(25);
MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
true, "GBK");