Токен создается в учетных данных с помощью этого оператора.
Код: Выделить всё
GoogleCredential credential = GoogleCredential.fromStream(fileStream)
.createScoped(ImmutableSet.of("https://mail.google.com/",
"https://www.googleapis.com/auth/gmail.send"))
.setExpirationTimeMilliseconds(1200000L);
Код: Выделить всё
properties.setProperty("mail.smtp.starttls.required", "true");
properties.setProperty("mail.smtp.sasl.enable", "true");
properties.setProperty("mail.smtp.sasl.mechanisms", "XOAUTH2");
properties.setProperty("mail.smtp.auth.login.disable", "true");
properties.setProperty("mail.smtp.auth.plain.disable", "true");
properties.setProperty("mail.smtp.host", "smtp.gmail.com");
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.user", "service_account_email");
Я хотел бы использовать G API для отправки электронных писем , но система в ее текущей конфигурации должна ретранслировать электронные письма через почтовую библиотеку Java, а не через API Google.
Трассировка SMTP:
Код: Выделить всё
EHLO ----
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
STARTTLS
220 2.0.0 Ready to start TLS
EHLO ----
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
DEBUG SMTP: Authenticate with SASL
DEBUG SMTP: SASL mechanisms allowed: XOAUTH2
DEBUG SMTP: SASL Mechanisms:
DEBUG SMTP: XOAUTH2
DEBUG SMTP:
DEBUG SMTP: SASL client XOAUTH2
DEBUG SMTP: SASL callback length: 2
DEBUG SMTP: SASL callback 0: javax.security.auth.callback.NameCallback@2e539008
DEBUG SMTP: SASL callback 1: javax.security.auth.callback.PasswordCallback@763557bd
DEBUG SMTP: SASL authentication failed
Подробнее здесь: https://stackoverflow.com/questions/789 ... -gmail-com