Javamail-smtp-connect和Domino-Lotus
我开发了一个web应用程序JSF、Spring、jboss AS 7.0.13,用于使用Javamail 1.4和DominoLotus9.0.1作为邮件服务器通过smtp发送邮件 已经完成的工作: Domino Lotus已配置为允许smtp消息。 我可以使用Lotus Notes邮件客户端发送邮件。 我可以使用简单客户机发送邮件,也可以使用我为测试目的开发的简单jar文件。 发送方法源代码:Javamail-smtp-connect和Domino-Lotus,java,jakarta-mail,lotus-domino,Java,Jakarta Mail,Lotus Domino,我开发了一个web应用程序JSF、Spring、jboss AS 7.0.13,用于使用Javamail 1.4和DominoLotus9.0.1作为邮件服务器通过smtp发送邮件 已经完成的工作: Domino Lotus已配置为允许smtp消息。 我可以使用Lotus Notes邮件客户端发送邮件。 我可以使用简单客户机发送邮件,也可以使用我为测试目的开发的简单jar文件。 发送方法源代码: System.out.println(" ******************* START
System.out.println(" ******************* START SENDING EMAIL ***********************");
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
props.put("mail.smtp.host", "192.168.25.5");
props.put("mail.smtp.socketFactory.port","25");
props.put("mail.smtp.port", "25");
session = Session.getInstance(props);
try {
Message message;
message = new MimeMessage(session);
message.setFrom(new InternetAddress("alice@test.ma"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("bob@test.ma"));
message.setSubject("Test Notification");
message.setContent("Hello there !!", "text/html");
Transport.send(message);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
System.out.println(" ******************* END SENDING MAIL ***********************");
}
奇怪的是,在一个简单的java应用程序中使用相同的方法,我可以毫无问题地发送邮件,但是,当尝试从我的web应用程序发送邮件时,当然再次使用相同的方法源代码>>>我遇到了一个异常:
原因:javax.mail.MessaginException:无法连接到SMTP主机:192.168.25.5,端口:25;
嵌套异常是:
java.net.SocketException:无法识别的Windows套接字错误:10107:连接
在com.sun.mail.smtp.SMTPTransport.openServerSMTPTransport.java:1934[mail-1.4.4.jar:1.4.4]
在com.sun.mail.SMTPTransport.protocolConnectSMTPTransport.java:638[mail-1.4.4.jar:1.4.4]
java:295[mail-1.4.4.jar:1.4.4]
java:176[mail-1.4.4.jar:1.4.4]
java:125[mail-1.4.4.jar:1.4.4]
javax.mail.Transport.send0Transport.java:194[mail-1.4.4.jar:1.4.4]
java:124[mail-1.4.4.jar:1.4.4]
... 83多
原因:java.net.SocketException:无法识别的Windows套接字错误:10107:连接
在java.net.TwoStacksPlainSocketImpl.socketConnectNative方法[rt.jar:1.7.055]
java.net.AbstractPlainSocketImpl.doConnectAbstractPlainSocketImpl.java:339[rt.jar:1.7.055]
在java.net.AbstractPlainSocketImpl.connectToAddressAbstractPlainSocketImpl.java:200[rt.jar:1.7.055]
java.net.AbstractPlainSocketImpl.connectAbstractPlainSocketImpl.java:182[rt.jar:1.7.055]
在java.net.PlainSocketImpl.connectPlainSocketImpl.java:172[rt.jar:1.7.055]
在java.net.socksocketimpl.connectsocksocketimpl.java:392[rt.jar:1.7.0_55]
java:579[rt.jar:1.7.0_55]
java:528[rt.jar:1.7.0_55]
在com.sun.mail.util.SocketFetcher.createSocketSocketFetcher.java:288[mail-1.4.4.jar:1.4.4]
在com.sun.mail.util.SocketFetcher.getSocketSocketFetcher.java:231[mail-1.4.4.jar:1.4.4]
在com.sun.mail.smtp.SMTPTransport.openServerSMTPTransport.java:1900[mail-1.4.4.jar:1.4.4]
... 89多
其他资料:
Domino Lotus服务器ip_地址:192.168.25.5
Domino Lotus smtp默认端口:25
Alice和Bon邮件地址已经创建。
感谢Torsten Link,您是对的,jboss服务没有允许web应用程序通过smtp与Domino Lotus通信的所有权限,通过standalone.bat手动运行jboss解决了问题。
再次感谢=您是否在运行web应用程序服务器的同一台机器上运行测试应用程序?是的,它们在同一台服务器上运行web应用程序在哪个上下文中运行?我认为,它运行的进程没有使用端口的权限。手动调用的程序具有您的用户权限,因此通常允许使用端口,例如使用系统帐户的服务可能不被允许。我正在使用我为jboss创建的服务运行我的应用程序,您有什么建议?使用standalone.bat手动运行jboss通常系统帐户是高优先级帐户,它应该已经有使用端口的权限。