Quiero hacer una función que pueda enviar correos electrónicos a cualquier destinatario específico (gmail). El problema al que me enfrento es que mi autenticación falla cuando intento proporcionar credenciales que usan autenticación bidireccional en gmail. Con la cuenta sin autenticación bidireccional, funciona bien. Entonces, ¿qué tengo que hacer para que las cosas sucedan con las autenticaciones bidireccionales habilitadas?Envío de correo electrónico a través de java en la cuenta de Gmail con autenticación bidireccional
A continuación se muestra el código que estoy utilizando para enviar correos electrónicos.
public static boolean sendMail(String fromMail, String fromPassword, String toMail, String message) {
try {
final String user = fromMail, password = fromPassword;
Properties prop = new Properties();
prop.setProperty("mail.smtp.host", "smtp.gmail.com");
prop.setProperty("mail.smtp.port", "465");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.ssl.enable", "true");
// prop.put("mail.debug", "true");
// prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session sess = Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(user, password);
}
});
// Session sess=Session.getDefaultInstance(prop);
sess.setDebug(true);
Message msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress(fromMail));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
msg.setText(message);
msg.setContent(message, "text/html");
Transport.send(msg);
return true;
} catch (MessagingException msgEx) {
msgEx.printStackTrace();
return false;
}
}
Revisé los enlaces y obtuve una contraseña específica de la aplicación y soy capaz de iniciar sesión exitosamente en el navegador. Pero en el código aquí en algún lugar, necesito tener que especificar esa contraseña también. Debido a que todavía me está dando error después de generar la contraseña específica de la aplicación también. – ankurtr
Interesante. Hace un tiempo, cuando me encontré con esto, el servicio smtp de google me dio un mensaje de error específico de autenticación bidireccional. ¿Lo has verificado? – Friek
sí, estoy hablando solo de eso. recibo el error llamado "javax.mail.AuthenticationFailedException: 535-5.7.1 Se requiere una contraseña específica de la aplicación". Entonces, ¿qué hacer para resolver eso? – ankurtr