大家给我讲下Transport类的connect方法。。。

点个赞吧 2011-03-24 05:28:15
最近碰到一个测试邮箱服务器的bug。困扰我两天了。先看下这几行代码
if(smtpportSend == null || "".equals(smtpportSend) || "25".endsWith(smtpportSend)){
transport.connect((String) props.get("mail.smtp.host"), 25, username, password);
}else{
//用于用户自己填写端口时候执行连接测试 modify by wangx
transport.connect((String) props.get("mail.smtp.host"), Integer.valueOf(smtpportSend),username, password);
}
解释一下:这个判断是判断的是否启用了SSL加密功能。
问题出来了:
1. 如果不启用SSL加密功能,测试邮箱服务器就没问题,可以通过transport.connect...
2. 如果启用SSL加密功能,测试邮箱服务器就卡住了,要过好长时间,后台开始报异常():
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at com.wisecrm.server.business.services.EmailDriver.sendForTest(EmailDriver.java:336)
at com.wisecrm.server.business.services.DraftboxEmailService.testSMTPConnection(DraftboxEmailService.java:216)
at com.wisecrm.server.business.services.DraftboxEmailService.testEmailConnection(DraftboxEmailService.java:196)
at com.wisecrm.server.business.services.DraftboxEmailService$$FastClassByCGLIB$$1312bf4f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:698)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at com.wisecrm.server.business.CallContextInterceptor.invoke(CallContextInterceptor.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
at com.wisecrm.server.business.services.DraftboxEmailService$$EnhancerByCGLIB$$bbd1cda7.testEmailConnection(<generated>)
at com.wisecrm.pages.settings.PersonalSettingPreferences.renderPage(PersonalSettingPreferences.java:134)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:368)
at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:732)
at org.apache.tapestry.engine.PageService.service(PageService.java:77)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:872)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:197)
at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:326)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.wisecrm.tapestryextension.SetCurrentUserFilter.doFilter(SetCurrentUserFilter.java:256)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
... 40 more
com.wisecrm.server.business.ApplicationException: 测试SMTP服务器时发生未知错误,测试失败!
at com.wisecrm.server.business.services.EmailDriver.sendForTest(EmailDriver.java:359)
at com.wisecrm.server.business.services.DraftboxEmailService.testSMTPConnection(DraftboxEmailService.java:216)
at com.wisecrm.server.business.services.DraftboxEmailService.testEmailConnection(DraftboxEmailService.java:196)
at com.wisecrm.server.business.services.DraftboxEmailService$$FastClassByCGLIB$$1312bf4f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:698)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at com.wisecrm.server.business.CallContextInterceptor.invoke(CallContextInterceptor.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
at com.wisecrm.server.business.services.DraftboxEmailService$$EnhancerByCGLIB$$bbd1cda7.testEmailConnection(<generated>)
at com.wisecrm.pages.settings.PersonalSettingPreferences.renderPage(PersonalSettingPreferences.java:134)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:368)
at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:732)
at org.apache.tapestry.engine.PageService.service(PageService.java:77)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:872)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:197)
at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:326)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.wisecrm.tapestryextension.SetCurrentUserFilter.doFilter(SetCurrentUserFilter.java:256)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

我看了,pop3和smtp地址都对,端口号也对,就是卡在了transport.connect((String) props.get("mail.smtp.host"), Integer.valueOf(smtpportSend),username, password);这里。。。
就是在请高手帮忙看下是怎么回事,怎么样解决。。。多谢了。。。。
...全文
1755 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧