Я работаю над Java-приложением, чтобы использовать мое соединение Gmail для отправки электронной почты, но я нахожусь на стене.Javamail с использованием OAuth и GMail
Я выяснил, что мне нужно использовать OAuth, который использует текущая реализация JavaMail, но я на самом деле не нашел четкого руководства по тому, как это сделать. Я программист-любитель и хорошо, вроде манекена, когда дело доходит до понимания (я очень много работаю для некоторых C в школе, LOL), но я пытаюсь учиться здесь.
Большая часть того, что я собрал, была отобрана из других вещей, которые я нашел, пытаясь получить что-то, что это такое. Но проблема, с которой я сталкиваюсь, - одна из двух вещей.
Либо я не могу получить разрешение, а затем получаю письмо от Google, в котором говорится, что приложение пытается получить доступ к моей электронной почте, не соблюдая современные стандарты безопасности, или что мне нужно войти в систему через веб-браузер.
Из-за того, что я нашел, несколько лет назад Google изменил свою безопасность, поэтому мы должны использовать OAuth сейчас, что, к счастью, поддерживает JavaMail, но я не могу заставить его работать. И много помощи, которую я видел здесь в Stack Overflow или других местах, почти 5 лет.
Прямо сейчас, я пытаюсь сделать программу Java в затмении, чтобы просто отправить по электронной почте, и я использую github.com/google/gmail-oauth2-tools
Чтобы попытаться сделать OAuth лексема, но есть ошибка
метод в OAuth2SaslClientFactory
public SaslClient createSaslClient(String[] mechanisms,
String authorizationId,
String protocol,
String serverName,
Map<String, ?> props,
CallbackHandler callbackHandler) {
boolean matchedMechanism = false;
for (int i = 0; i < mechanisms.length; ++i) {
if ("XOAUTH2".equalsIgnoreCase(mechanisms[i])) {
matchedMechanism = true;
break;
}
}
if (!matchedMechanism) {
logger.info("Failed to match any mechanisms");
return null;
}
return new OAuth2SaslClient((String)props.get(OAUTH_TOKEN_PROP), callbackHandler);
}
Код из OAuth2SASLClient
public OAuth2SaslClient(String oauthToken, CallbackHandler callbackHandler) {
this.oauthToken = oauthToken;
this.callbackHandler = callbackHandler; }
Это возвратная линия говорит конструктор не может справиться с этим, но конструктор в OAuth2SaSLClient.java фактически создан, чтобы иметь (, обратный вызов String) параметр.
Если у кого-то есть что-то быстрое и легкое, что работает, я бы хотел его увидеть, хотя кажется, что для этого нужно использовать определенный способ создания токена OAuth.
Я могу опубликовать свой код, если это поможет, но сначала мне нужно его очистить, это своего рода первый черновик/грязный коллаж из вещей, которые я пытался получить.
Или учебник javamail/Oauth для чайников.
Конечная цель состоит в том, чтобы связать это с программой, которая может отправить быстрое уведомление, когда что-то произойдет. Которого я не могу сделать.
Вместо обмена код, изображений, это поможет, если вы совместно используете код здесь, используя 'code blocks' –