javamail问题

wzw_19850911 2010-01-22 09:55:53
同事写了一个邮件收发的程序,在sun jdk环境下可以正常运行 ,但是当使用ibm jdk(也就是websphere 的JRE环境)时却发生了错误
同事的邮件收发 使用了ssl连接
下面是程序主要代码

final String SSL_FACTORY = "com.ibm.websphere.ssl.protocol.SSLSocketFactory";//SSL
Properties props = System.getProperties();
props.setProperty("mail.smtp.ssl.enable", "true");
props.setProperty("mail.smtp.socketFactory.class",SSL_FACTORY);
props.setProperty("mail.smtp.host", hostName);
props.setProperty("mail.smtp.port", hostPort);
props.put("mail.smtp.auth", "true");
final String username = userName;
final String password = passWord;

session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
session.setDebug(debug);
Transport tp = session.getTransport("smtp");
tp.connect();
tp.close();
这是运行程序后发生的错误:
DEBUG: setDebug: JavaMail version 1.4.2
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL true
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.io.IOException: Couldn't connect using socket factory class com.ibm.websphere.ssl.protocol.SSLSocketFactory to host, port: smtp.gmail.com, 465; Exception: java.lang.NullPointerException
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1545)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453)
at javax.mail.Service.connect(Service.java:313)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at com.chncloud.mail.SMTP.initialize(SMTP.java:118)------即tp.connect();这一行代码 at com.chncloud.mail.test.MainTest.testSMTP(MainTest.java:56)
at com.chncloud.mail.test.MainTest.main(MainTest.java:24)
Caused by: java.io.IOException: Couldn't connect using socket factory class com.ibm.websphere.ssl.protocol.SSLSocketFactory to host, port: smtp.gmail.com, 465; Exception: java.lang.NullPointerException
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:216)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1511)
... 7 more
Caused by: java.lang.NullPointerException
at com.ibm.websphere.ssl.protocol.SSLSocketFactory.createSocket(SSLSocketFactory.java:304)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:256)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:201)
... 8 more
...全文
166 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT源哥 2010-01-22
  • 打赏
  • 举报
回复

跟ibm jdk应该没有关系,报如下错,应该是找不到url地址了,你安装的是aix系统么?是否dns服务没有启动?在服务器上ping一下smtp.gmail.com这个地址试一试能不能ping通
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
烟雨鹏城 2010-01-22
  • 打赏
  • 举报
回复
那就是jdk环境不一致的问题吧。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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