从 Glassfish 2.1 迁移到 Glassfish 4.1 后无法发送电子邮件

Failed to send an email after migration from Glassfish 2.1 to Glassfish 4.1

我迁移了我的 Client WebApp。以前,在 Glassfish 2.1 和 JDK 1.6 上是 运行。现在,它在 Glassfish 4.1 和 jdk 1.8.

当我尝试从我的 WebApp 发送电子邮件时,打包在 JDK 1.6(Project facets 1.6)中的相同“.war”在 Glassfish 2.1 上完美运行,但在 Glassfish 2.1 上不起作用玻璃鱼 4.0。两条 Glassfish 在本地 运行。

例外情况是:

    13917 [http-listener-1(4)] ERROR com.myClient.web.action.myAction- Failed to send email
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: ismtp.corp.capgemini.com, 25; timeout -1;
  nested exception is:
    java.net.SocketException: Network is unreachable: connect
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
    at javax.mail.Service.connect(Service.java:364)
    at javax.mail.Service.connect(Service.java:245)
    at javax.mail.Service.connect(Service.java:194)
    at javax.mail.Transport.send0(Transport.java:253)
    at javax.mail.Transport.send(Transport.java:124)
    at com.labco.web.action.ValiderOubliMdpAction.sendMail(ValiderOubliMdpAction.java:296)

我尝试使用 telnet 从 cmd.exe 发送电子邮件并且它有效。所以我认为问题在于 Glassfish 4.1 的调整。可能在 http-listeners 上。

您对我的问题有什么建议或想法吗?

谢谢,

在 glassfish 上而不是 "Default-configuration" 添加 Djava.net.preferIPv4Stack=true 到服务器配置。我认为它可以解决您的问题