Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java错误javax.mail.MessaginException:无法连接到SMTP主机:_Java_Jakarta Mail - Fatal编程技术网

Java错误javax.mail.MessaginException:无法连接到SMTP主机:

Java错误javax.mail.MessaginException:无法连接到SMTP主机:,java,jakarta-mail,Java,Jakarta Mail,我有一个发送电子邮件的java应用程序。它一直运行良好,从未出现过这个问题。今天我突然看到了很多这样的错误,但也有一些是成功的。下面是完整的跟踪 javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465; nested exception is: java.net.ConnectException: Connection timed out at com.sun.mail.sm

我有一个发送电子邮件的java应用程序。它一直运行良好,从未出现过这个问题。今天我突然看到了很多这样的错误,但也有一些是成功的。下面是完整的跟踪

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at commServer9000$MailProcessor.run(commServer9000.java:6550)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
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:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
    ... 8 more

在这种情况下,启用SSL解决了我的问题

JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(465);

//setting username and password
mailSender.setUsername("UserName");
mailSender.setPassword("Password");

//setting Spring JavaMailSenderImpl Properties
Properties mailProp = mailSender.getJavaMailProperties();

mailProp.put("mail.transport.protocol", "smtp");
mailProp.put("mail.smtp.auth", "true");
mailProp.put("mail.smtp.starttls.enable", "true");
mailProp.put("mail.smtp.starttls.required", "true");
mailProp.put("mail.debug", "true");
mailProp.put("mail.smtp.ssl.enable", "true");
mailProp.put("mail.smtp.user", String.valueOf(resourceList.get(0)));

是的,互联网并不完美。你可能应该期待这样的事情发生,并相应地处理它们。捕获异常,重试,在X次重试后退出。可能是因为网络问题。请看以下内容,这可能会解决您的问题。这肯定是网络问题,因为连接超时。或者服务器端有问题。是的,我在服务器和我的家用电脑telnet smtp.gmail.com上进行了此操作,这两台电脑的连接都超时了。所以我想代码没有什么问题,只是今天的连接有问题,对吗?Gmail没有监听端口25,所以这不是一个有效的测试。使用端口465。不过,很明显,你有网络问题。