(整理后的) spring发送邮件 有时候好用,但经常出现如下的错误,球好的解决方案
下面是邮件debug输出 的信息。。
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.126.com", port 25, isSSL false DEBUG SMTP: exception reading response: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Exception reading response;
下面是代码:
代码如下 JavaMailSenderImpl mailSend=new JavaMailSenderImpl(); mailSend.setDefaultEncoding("UTF-8");//编码 mailSend.setHost(getWebServicePz("shxt.mail.host"));//mail端口协议 mailSend.setPassword(getWebServicePz("shxt.mail.password"));//密码 mailSend.setUsername(getWebServicePz("shxt.mail.username"));//用户名@前面 Properties properties = new Properties(); properties.setProperty("mail.debug", "true");//是否显示调试信息(可选测试用) properties.setProperty("mail.transport.protocol", "smtp");//协议 properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.auth", "true");//设置用户验证 properties.setProperty("mail.smtp.timeout","250000");//超时时间 mailSend.setJavaMailProperties(properties); MimeMessage msg = mailSend.createMimeMessage(); MimeMessageHelper message = new MimeMessageHelper(msg, false, "UTF-8"); message.setFrom(getWebServicePz("shxt.mail.from")); message.setSubject("上会通知"); message.setTo(toEmails); //发件人 String htmlTemplate=mailTzTemplate(hyxx,template,hys,yhryLst,ytList);//freemark 网页模板 message.setText(htmlTemplate, true); // 如果发的不是html内容去掉true参数 mailSend.send(msg);
怎么能解决那个异常呢?影响我的程序实现!希望有经验的大侠给点意见。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
谢谢提醒。但你知道为什么会因为加了那句话就出现那个ssl链接错误的么?
isSSL false DEBUG SMTP: exception reading response: javax.net.ssl.SSLException: Unrecognized SSL message。。。
有没有使用SSL啊?
你还说有时好用,如果你这种配置问题,永远都不可能发送成功。
自己用一个邮件客户端(FoxMail,Thunderbird)配置一下,比较一下配置参数就知道什么问题。
引用来自“鉴客”的答案
删掉这行:
properties.setProperty("mail.smtp.socketFactory.class", javax.net.ssl.SSLSocketFactory");
为什么楼主的代码是一行显示呢,应用用oschina的插入代码,这样看着才舒服
问题解决了,就要设置最佳答案,养成好习惯
我设置错最佳答案了,能该动么?
引用来自“鉴客”的答案
删掉这行:
properties.setProperty("mail.smtp.socketFactory.class", javax.net.ssl.SSLSocketFactory");
为什么楼主的代码是一行显示呢,应用用oschina的插入代码,这样看着才舒服