Используйте сервисную учетную запись Google для отправки электронной почты через smtp.gmail.com.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Используйте сервисную учетную запись Google для отправки электронной почты через smtp.gmail.com.

Сообщение Anonymous »

Я пытаюсь использовать учетную запись Gmail, которую использовал до сих пор, для автоматической ретрансляции электронной почты с помощью веб-приложения. Использование электронной почты и пароля небезопасно и поэтому запрещено с 30 сентября. Я хочу использовать предоставленный сервисный аккаунт, так как двухэтапный метод подтверждения мне не подходит. Поэтому я хотел бы использовать учетную запись службы с токеном доступа.
Токен создается в учетных данных с помощью этого оператора.

Код: Выделить всё

GoogleCredential credential = GoogleCredential.fromStream(fileStream)
.createScoped(ImmutableSet.of("https://mail.google.com/",
"https://www.googleapis.com/auth/gmail.send"))
.setExpirationTimeMilliseconds(1200000L);
Я получил токен доступа, затем пытаюсь отправить электронные письма с помощью Java-почты и следующих свойств:

Код: Выделить всё

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");
И с помощью Java Authenticator установите адрес электронной почты (адрес электронной почты учетной записи службы) и пароль (токен доступа). Я пробовал использовать электронную почту служебной учетной записи и основную учетную запись, но попытка аутентификации с помощью метода Sasl XOAUTH2 не удалась.
Я хотел бы использовать 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
Код SMTP, полученный в случае неудачной аутентификации, был 555.

Подробнее здесь: https://stackoverflow.com/questions/789 ... -gmail-com
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»