MailConnectException beim senden der Mails mit java mail api
Versuchen, senden Sie eine E-Mail mit java-mail-api. Und ich erhalte MailConnectException. Ich habe versucht, mehrere Möglichkeiten, es zu lösen, ohne Erfolg.
Ausnahme wird ausgelöst durch diese Aussage
transport.connect("smtp.gmail.com", "[email protected]", "myPassword");
Kann mir jemand sagen was ich falsch mache?
public static void main(String[] args) {
String host = "smtp.gmail.com";
String from = "[email protected]";
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", "myPassword");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
try{
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipients(Message.RecipientType.TO, "[email protected]");
message.setSubject("sending in a group");
message.setText("Welcome to JavaMail");
Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", "[email protected]", "myPassword");//CAUSES EXCEPTION
transport.sendMessage(message, message.getAllRecipients());
}catch(MessagingException e){
e.printStackTrace();
}
}
Stack trace:
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 465; timeout -1;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1984)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:656)
at javax.mail.Service.connect(Service.java:345)
at javax.mail.Service.connect(Service.java:226)
at com.karmacrafts.util.CustomEmail.main(CustomEmail.java:127)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:301)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:229)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
... 4 more
Vielen Dank für Ihren Kommentar. Aber ich bekomme immer noch den gleichen Fehler.
InformationsquelleAutor Susie | 2013-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht dies wie Netzwerk-problem. Obwohl, könnte es auftreten, aufgrund einer Vielzahl von Gründen, wie :-
"Konnte keine Verbindung zum host", "port" könnte verursacht werden durch falschen host-Namen, falschen Anschluss, eine blockierende firewall (auf dem server, gateways, auch auf Ihren eigenen Computer), Netzwerk-Ausfall, server-Ausfallzeiten, etc.
Können Sie eine Verbindung zum mail-server über telnet ?
Außerdem finden Sie in dieser FAQ einige Fehler, die Sie begangen http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes
Lesen Sie diese Antwort auf wie zum senden von E-Mails mit gmail https://stackoverflow.com/a/47452/3107043
Sie waren korrekt über die Ursache möglicherweise falsche port-Nummer änderte ich den port auf 587 und Hinzugefügt, diese Anweisung zu meinem obigen code und es funktionierte gut. Requisiten.put("mail.smtp.starttls.enable", "true");
InformationsquelleAutor Caadi0
Nach 8 Stunden Schmerzen, ich habe das Problem gelöst durch deaktivieren:
1) meine windows-firewall
2) mein Antiviren-software
hoffe, das hilft
InformationsquelleAutor JeSa
InformationsquelleAutor shiva raj
Ich traf das gleiche problem, und der Grund ist, dass ich öffnete ein vpn. Hoffe, dass dies hilfreich sein wird.
InformationsquelleAutor Congmin Qiu