Desidero eseguire una funzione che può inviare e-mail a qualsiasi destinatario specificato (gmail). Il problema che sto affrontando è che la mia autenticazione fallisce quando provo a fornire credenziali che utilizzano l'autenticazione bidirezionale in gmail. Con account che non hanno un'autenticazione bidirezionale, funziona bene. Quindi cosa devo fare per far sì che le cose accadano con le autenticazioni a due vie abilitate?Invio di e-mail tramite java in account Gmail con autenticazione a due vie
Di seguito è riportato il codice che sto utilizzando per inviare e-mail.
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;
}
}
Ho controllato i collegamenti e ottenuto una password specifica per l'applicazione e sono in grado di accedere correttamente al browser. Ma nel codice qui in qualche posto ho bisogno di specificare anche quella password. Perché mi sta ancora dando errore dopo aver generato anche una password specifica per l'applicazione. – ankurtr
Interessante. Qualche tempo fa, quando mi sono imbattuto in questo, il servizio smtp di google mi ha dato un messaggio di errore specifico dell'autorizzazione a 2 vie. Ti è capitato di controllarlo? – Friek
sì, sto parlando solo di questo. sto ricevendo quell'errore chiamato "javax.mail.AuthenticationFailedException: 535-5.7.1 Password specifica dell'applicazione richiesta." Quindi cosa fare per risolvere questo? – ankurtr