NutzCN Logo
精华 发送 email 失败 (配置正确......)
发布于 2912天前 作者 qq_868910ac 5518 次浏览 复制 上一个帖子 下一个帖子
标签: email

@Test
public void testH(){
System.out.println(emailService.send("725873678@qq.com","xxx","1212"));
}

mail.HostName=smtp.exmail.qq.com
mail.SmtpPort=465
mail.UserName=**********@qq.com
mail.Password=***********
mail.SSLOnConnect=true
mail.From=*********@qq.com

2016-12-20 14:53:17,108 com.smartlife.common.services.email.EmailService.send(EmailService.java:30) INFO - send email fail
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.exmail.qq.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
at com.smartlife.common.services.email.EmailService.send(EmailService.java:27)
at com.smartlife.modules.myTest.testH(myTest.java:183)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.nutz.mock.NutTestRunner.runChild(NutTestRunner.java:33)
at org.nutz.mock.NutTestRunner.runChild(NutTestRunner.java:14)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.exmail.qq.com, port: 465;
nested exception is:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2102)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:699)
at javax.mail.Service.connect(Service.java:388)
at javax.mail.Service.connect(Service.java:246)
at javax.mail.Service.connect(Service.java:195)
at javax.mail.Transport.send0(Transport.java:254)
at javax.mail.Transport.send(Transport.java:124)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411)
... 25 more
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:598)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:372)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:217)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066)
... 32 more
false

10 回复

普通qq账号请使用 smtp.qq.com

换了 依旧报这个错误。。。。

http://www.xiaotanzhu.com/2016/07/30/use-rc4-in-tencent-mail.html

擦擦擦擦,原来jdk8 u60开始禁用了RC4算法,好坑

日哦 难怪 之前 怎么看都正确 就是不成功 之后就不了了之了

然后我写nutzbook的时候是jdk8u31,正常跑, 我日日日日...

qq邮箱请考虑使用 授权码访问。。。

安利一个 util https://github.com/bbottema/simple-java-mail,

qq邮箱需要使用ssl加密访问,然后就很有必要升级下 jce

@wendal 顺便给nutzwk改一下呗?。。

@Wizzercn 用阿里云邮,没这个问题

我也遇到这个问题,目前处理方式如下

ImageHtmlEmail htmlEmail = ioc.get(ImageHtmlEmail.class);
            //腾讯邮箱协议报错问题
            htmlEmail.getMailSession().getProperties().put("mail.smtp.ssl.protocols", "TLSv1.2");
添加回复
请先登陆
回到顶部