javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

匿名 (未验证) 提交于 2019-12-03 08:52:47

问题:

The Code I'm Using to send a simple mail

import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; import javax.activation.DataHandler; import javax.activation.FileDataSource;  public class SendMailUsingAuthentication {    private static final String SMTP_HOST_NAME = "smtp.gmail.com";   private static final String SMTP_AUTH_USER = "myemail@gmail.com";   private static final String SMTP_AUTH_PWD  = "mypassword";    public static void main(String args[]) throws Exception   {    }    public void postMail( String recipients[ ], String subject,String message , String from) throws MessagingException   {     try {         boolean debug = false;          Properties props = new Properties();         props.put("mail.smtp.host", SMTP_HOST_NAME);         props.put("mail.smtp.starttls.enable", "true");         props.put("mail.smtp.auth", "true");         Authenticator auth = new SMTPAuthenticator();         Session session = Session.getDefaultInstance(props, auth);         session.setDebug(debug);          Message msg = new MimeMessage(session);          InternetAddress addressFrom = new InternetAddress(from);         msg.setFrom(addressFrom);         InternetAddress[] addressTo = new InternetAddress[recipients.length];         for (int i = 0; i 

When I'm running this code on my Local machine, it's working fine.... But When I deployed it on the server it's giving me this exception

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;   nested exception is:     java.net.ConnectException: Connection timed out     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:297)     at javax.mail.Service.connect(Service.java:156)     at javax.mail.Service.connect(Service.java:105)     at javax.mail.Transport.send0(Transport.java:168)     at javax.mail.Transport.send(Transport.java:98)     at SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:97)     at RegistrationServlet.doGet(RegistrationServlet.java:98)     at RegistrationServlet.doPost(RegistrationServlet.java:125)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:196)     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)     at java.lang.Thread.run(Thread.java:662) Caused by: java.net.ConnectException: Connection timed out     at java.net.PlainSocketImpl.socketConnect(Native Method)     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)     at java.net.Socket.connect(Socket.java:529)     at java.net.Socket.connect(Socket.java:478)     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) 

回答1:

Sounds like a firewall problem (firewalls silently drop packets that are not allowed, which is why you would be seeing a Connection Timeout.

Can you try

H:\> telnet smtp.gmail.com 25 Connecting To smtp.gmail.com...Could not open connection to the host, on port 25 : Connect failed 

on your server and see whether you get a connection? (I'm behind a firewall here that does not allow connections to gmail)



回答2:

While running in jboss check whether your running using run.bat -b 0.0.0.0.

If not try and it should work fine.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!