关于JAVAMAIL权限认证的问题

wujh123 2008-03-31 05:53:23
有个问题请教一下,关于javamail发送邮件,有的服务器可以正常发送,有的服务器却无法通过权限验证“Could not connect to SMTP host” 这个是什么原因?

例如我用公司的邮箱当发件人可以正常发送邮件,但用163的邮箱就无法通过权限认证。


部分代码如下:
mailhost=163.com
password=211213
user=name

//获得属性,并生成Session对象
Properties props=new Properties();
Session sendsession;
Transport transport;
sendsession = Session.getInstance(props, null);
//向属性中写入SMTP服务器的地址
props.put("mail.smtp.host", "smtp."+host);
//设置SMTP服务器需要权限认证
props.put("mail.smtp.auth","true");
//设置输出调试信息
sendsession.setDebug(true);
//根据Session生成Message对象
Message message = new MimeMessage(sendsession);
//设置发信人地址
message.setFrom(new InternetAddress(user+"@"+host));
//设置收信人地址
message.setRecipients(Message.RecipientType.TO, getRecipients(parseRecipients(mailTo)));
//设置e-mail标题
message.setSubject(subject);
//设置e-mail发送时间
message.setSentDate(new Date());
//设置e-mail内容
message.setText(content);

//保存对于e-mail的修改
message.saveChanges();
//System.out.println("smtp."+host+","+user+","+password);
//根据Session生成Transport对象
transport=sendsession.getTransport("smtp");
//连接到SMTP服务器
transport.connect("smtp."+host,user,password);
//发送e-mail
transport.sendMessage(message,message.getAllRecipients());

logger.debug(subject+","+content+","+bn_email+"发送成功!");
//关闭Transport连接
transport.close();


××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
用163邮箱时异常信息如下:
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.163.com", port 25, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at com.aspire.bill.util.SendMailPwd.SendWebMail(SendMailPwd.java:139)
at com.aspire.channel.action.BOCWebStationAction.checkWebStation(BOCWebStationAction.java:294)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:300)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
at com.aspire.system.interceptor.SystemLogerInterceptor.intercept(SystemLogerInterceptor.java:191)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.aspire.common.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 46 more
...全文
197 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujh123 2008-04-01
  • 打赏
  • 举报
回复
谁能告诉我是什么原因啊。。

难道这些邮箱服务器都关闭了这个服务?那JAVAMAIL不是废了……

哪位兄弟有可以使用JAVAMAIL发出邮件的邮箱服务器么?
wujh123 2008-04-01
  • 打赏
  • 举报
回复
yahoo也挂了
wujh123 2008-04-01
  • 打赏
  • 举报
回复
又测试了sina,sohu以及另外一个公司的邮箱,统统失败--!
ylzbzx 2008-04-01
  • 打赏
  • 举报
回复
反正我用javamail是可以的``我用的是163的
wujh123 2008-04-01
  • 打赏
  • 举报
回复
21cn的邮箱可以,基本可以确认是邮箱服务器禁用了这个服务了……
xql80329 2008-04-01
  • 打赏
  • 举报
回复
你的用户名和密码 是否在相应的邮件服务器上存在吗?
需要对三者进行验证
aloie 2008-04-01
  • 打赏
  • 举报
回复
我试过,163申请早的邮箱,有smtp服务,新申请的就没有这个服务了
l_wenb 2008-03-31
  • 打赏
  • 举报
回复
可能是163做了手脚
wujh123 2008-03-31
  • 打赏
  • 举报
回复
还用过移动的 monternet.com的也不行。。其他还未测试过,明天去公司了再测测
longshenls 2008-03-31
  • 打赏
  • 举报
回复
关注一下
老紫竹 2008-03-31
  • 打赏
  • 举报
回复
除了163,你测试其他的呢????

我也用不了163,他也用不了!!!

所以,是163做了限制!!!
hp5212000 2008-03-31
  • 打赏
  • 举报
回复
163的申请早的邮箱可以的~ 据说163现在把那个服务封掉了 所以163新申请的用户应该不行

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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