Ich versuche, eine authentifizierte E-Mail über Gmail-Server mit JavaMail API 1.5.5 zu senden.JavaMail - Authentifizierte OAuth2-SMTP-Mail senden
Ich folgte dem Tutorial in javaMailAPI 1.5.5 site und verwendet this google tool, aber es war nicht erfolgreich, eine Mail zu senden. Hier
ist das, was ich getan habe:
private static void sendEmail(String _emailBody){
//used oauth2.py in order to retrieve the access token
String accessToken = getAccessToken(refresh_token,username,client_id,client_secret);
// Setup mail server
Properties props = new Properties();
props.put("mail.imap.ssl.enable", "true"); // required for Gmail
props.put("mail.imap.auth.mechanisms", "XOAUTH2");
Session session = Session.getInstance(props);
Store store = session.getStore("imap");
store.connect("imap.gmail.com", username, accessToken);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(username));
msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(_email));
msg.setSubject("some subject");
msg.setText(_emailBody);
Transport.send(msg);
}
Ich habe die folgende execption:
com.sun.mail.util.MailConnectException
Couldn't connect to host, port: localhost, 25; timeout -1
Ich habe auch versucht die imap in den Eigenschaften Namen zu smtp zu wechseln, aber in diesem Fall ist die Programm wurde fest auf
store.connect("imap.gmail.com", username, accessToken);
Wie kann ich es lösen? Ich suchte online nach einer Antwort, fand aber keine.
Edit:
nicht genau die gleiche Frage wie vorgeschlagen. Ich benutze oauth2 Authentifizierung auf JavaMailAPI 1.5.5, die im Jahr 2016 veröffentlicht wurde. Die Verbindungsmethode ist anders. Das alte funktioniert nicht.
Es besagt, dass es ein Authentifizierungsproblem gibt. Außerdem benutze ich nicht den Benutzernamen und das Passwort, sondern den Benutzernamen und das Token von Google.
Mögliche Duplikate von [MailConnectException beim Senden von E-Mails mit Java-Mail-API] (http://StackOverflow.com/questions/20766044/mailconnectexception-while-sending-mail-using-java-mail-api) – DaImTo
@Dalmto Nicht genau . Ich benutze oauth2 Authentifizierung auf JavaMailAPI 1.5.5, die im Jahr 2016 veröffentlicht wurde. Die Verbindungsmethode ist anders. Das alte funktioniert nicht. Es besagt, dass ein Authentifizierungsproblem vorliegt. –
Ich verbinde mich auch mit Benutzername und Zugriffstoken statt Benutzername und Passwort. –