2014-11-27 4 views
0

Я разработал веб-приложение (JSF, Spring, jboss AS 7.0.13) для отправки писем по smtp с использованием Javamail 1.4 и Domino Lotus 9.0.1 в качестве почтового сервера.Javamail smtp connect & Domino Lotus

Что уже сделано:

  • Domino Лотус уже настроен для SMTP-сообщений.
  • Я могу отправлять письма с помощью Lotus Notes (Mailing client).
  • Я могу отправлять письма с помощью простых клиентов (простые файлы jar, которые я разработал для целей тестирования).

Отправить исходный метод Код:

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("[email protected]")); 
     message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse("[email protected]")); 

     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 я могу отправить почту без проблем, но при попытке отправить почту от моего веб-приложения, и Конечно, используя один и тот же исходный код метода снова >>> я получил исключение:

Вызванный: javax.mail.MessagingException: не удалось подключиться к SMTP хост: 192.168.25.5, порт: 25; Вложенное исключение: java.net.SocketException: непризнанная ошибка Windows Sockets: 10107: connect at com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:1934) [mail-1.4.4.jar: 1.4.4] по адресу com.sun.mail.smtp.SMTPTransport.protocolConnect (SMTPTransport.java:638) [mail-1.4.4.jar: 1.4.4] at javax.mail.Service.connect (Service.java : 295) [mail-1.4.4.jar: 1.4.4] at javax.mail.Service.connect (Service.java:176) [mail-1.4.4.jar: 1.4.4] at javax.mail .Service.connect (Service.java:125) [mail-1.4.4.jar: 1.4.4] at javax.mail.Transport.send0 (Transport.java:194) [mail-1.4.4.jar: 1.4 .4] на javax.mail.Transport.send (Transport.java:124) [mail-1.4.4.jar: 1.4.4] ... 83 более Вызванный: java.net.SocketException: неопознанная ошибка Windows Sockets: 10107: подключение на java.net.TwoStacksPlainSocketImpl.socketConnect (Native Method) [rt.jar: 1.7.0_55] на java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:339) [rt.jar: 1.7.0_55] at java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:200) [rt.jar: 1.7.0_55] at java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:182) [rt.jar: 1.7.0_55] at java.net.PlainSocketImpl.connect (PlainSocketImpl.java:172) [rt.jar: 1.7.0_55] at java.net.SocksSocketImpl.connect (SocksSocketImpl.java:392) [rt.jar: 1.7.0_55] на java.net.Socket.connect (Soc ket.java:579) [rt.jar: 1.7.0_55] at java.net.Socket.connect (Socket.java:528) [rt.jar: 1.7.0_55] at com.sun.mail.util. SocketFetcher.createSocket (SocketFetcher.java:288) [mail-1.4.4.jar: 1.4.4] at com.sun.mail.util.SocketFetcher.getSocket (SocketFetcher.java:231) [mail-1.4.4. баночка: 1.4.4] на com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:1900) [почта-1.4.4.jar: 1.4.4] ... подробнее 89

Другое информация:

  • Domino Lotus Server ip_adress: 192.168.25.5
  • Domino Lotus smtp порт по умолчанию: 25
  • Адреса Алисы и Бон уже созданы.
+0

Выполняете ли вы свои тестовые приложения на том же компьютере, на котором запущен сервер веб-приложений? – RealSkeptic

+0

Да, они работают на одном сервере – M3d3L0

+3

В каком контексте выполняется ваше веб-приложение? Я думаю, что процесс, в котором он работает, не имеет разрешения на использование портов. Программа, которая вызывается вручную, имеет ваши права пользователя и поэтому обычно разрешается использовать порты, например, может быть недоступна служба, использующая системную учетную запись. –

ответ

0

Спасибо, Torsten Link, вы правы, у службы jboss было не все разрешения разрешить веб-приложению общаться через smtp с Domino Lotus, запуская jboss вручную через standalone.bat, решив проблему. Еще раз спасибо =)

Смежные вопросы