首页 > 代码库 > javamail 发送邮件时 No authentication mechansims supported by both server and client
javamail 发送邮件时 No authentication mechansims supported by both server and client
项目需求要更换发邮件服务器,变更成中转邮箱服务器发邮件。结果总是报 No authentication mechansims supported by both server and client 。
搜了一堆东东,都不靠谱最后自己不断调试成功搞定。借鉴网址如下:
http://stackoverflow.com/questions/8615730/javamail-with-ms-exchange-no-authentication-mechansims-supported-by-both-server
原因:中转服务器不需要验证用户名密码啥的,所以链接的时候
MAIL_SMTP_AUTH 要设为 false。
transport.connect();//中转服务器邮箱不验证 连接的时候不要传东西,哪怕是 null 或 空 。它会认为你要验证。
(首先保证自己的发邮件服务器和应用服务器想通的。并且邮件服务器端口正确,默认是25(telnet 192.168.1.114 25))
javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:765) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685) at javax.mail.Service.connect(Service.java:274) at javax.mail.Service.connect(Service.java:91) at com.zhaopin.common.mail.util.MailSendUtil.<clinit>(MailSendUtil.java:108) at com.zhaopin.cdcpm.thread.MailThread.run(MailThread.java:17) =================begin send mail======================= 15:06:31,232 ERROR [com.zhaopin.common.mail.util.MailSendUtil] (com.zhaopin.common.mail.util.MailSendUtil:155) - When sending mail, here catch exception!!!!! javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:765) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685) at javax.mail.Service.connect(Service.java:274) at javax.mail.Service.connect(Service.java:91) at com.zhaopin.common.mail.util.MailSendUtil.send(MailSendUtil.java:135) at com.zhaopin.cdcpm.thread.MailThread.run(MailThread.java:17) javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:765) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685) at javax.mail.Service.connect(Service.java:274) at javax.mail.Service.connect(Service.java:91) at com.zhaopin.common.mail.util.MailSendUtil.send(MailSendUtil.java:135) at com.zhaopin.cdcpm.thread.MailThread.run(MailThread.java:17)
static { log.info("----- start init mail environment -----"); Authenticator auth = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(MailConfig.getMailFromUserName(), MailConfig.getMailFromUserPswd()); } }; Properties props = new Properties(); // 设置发送邮件的邮件服务器的属性 props.put(MAIL_SMTP_HOST, MailConfig.getMailHost()); // 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条) props.put(MAIL_SMTP_AUTH, MailConfig.isValidate()); // 用刚刚设置好的props对象构建一个session // session = Session.getDefaultInstance(props, auth); session = Session.getDefaultInstance(props, null);//中转服务器邮箱不验证 try { // 发送邮件 transport = session.getTransport("smtp"); // 连接服务器的邮箱 // transport.connect(MailConfig.getMailHost(), MailConfig.getMailFromUserName(), MailConfig.getMailFromUserPswd()); transport.connect();//中转服务器邮箱不验证 log.info("----- Connect with " + MailConfig.getMailHost() + " successfully -----"); } catch (Exception e) { log.error("----- Connect with " + MailConfig.getMailHost() + " failed -----", e); } }
javamail 发送邮件时 No authentication mechansims supported by both server and client
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。