para - javamail enviar correos electronicos desde java
MailConnectException al enviar correo usando java mail api (3)
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
props.put("mail.smtp.port", "587"); transport.send(message);
Intentando enviar un correo electrónico usando java mail api. Y sigo recibiendo MailConnectException. He intentado varias formas de resolverlo sin éxito.
La excepción es arrojada por esta declaración
transport.connect("smtp.gmail.com", "[email protected]", "myPassword");
¿Alguien puede decirme lo que estoy haciendo mal?
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
Encontré el mismo problema, y la razón es que abrí un vpn. Esperamos que esto sea útil.
Esto parece un problema de red. Aunque podría ocurrir debido a una variedad de razones, como:
"No se pudo conectar al host, puerto" podría ser causado por un nombre de host incorrecto, un puerto incorrecto, un firewall de bloqueo (en el servidor, en las puertas de enlace, incluso en su propia máquina), fallas de la red , tiempo de inactividad del servidor, etc.
¿Puedes conectarte al servidor de correo usando telnet?
También vea estas preguntas frecuentes para algunos errores que cometió http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes
Lea esta respuesta sobre cómo enviar correos electrónicos usando gmail https://.com/a/47452/3107043