Поддерживает ли Spring Integration Mail IMAP поддержку OAuth2? - PullRequest
0 голосов
/ 29 апреля 2020

Я использую почту интеграции Spring для событий простоя imap. Я хочу реализовать клиент IMAP gmail, используя токен вместо имени пользователя и пароля.

Может ли Spring Integration Mail IMAP подключаться к хранилищу gmail с токеном доступа?

Вот код, который я использовал

IntegrationFlow flow = IntegrationFlows
            .from(Mail.imapIdleAdapter("imaps://[username]:[password]@imap.gmail.com:993/inbox")
                    .javaMailProperties(p -> p
                            .put("mail.debug", "false")
                    .autoStartup(false)
                    .shouldReconnectAutomatically(true)
                    .userFlag("testSIUserFlag")
                    .headerMapper(new DefaultMailHeaderMapper()))
            .handle((Message<?> message) -> {
                logger.info("message: " + message);
            })
            .get();

1 Ответ

0 голосов
/ 29 апреля 2020

Похоже, нам просто нужно выполнить какой-то запрос REST для получения токена и вместе с некоторыми Java свойствами почты установить его в URL-адрес вместо [password] заполнителя: https://kgiann78.github.io/java/gmail/2017/03/16/JavaMail-send-mail-at-Google-with-XOAUTH2.html

 Properties props = new Properties();
 props.put("mail.imap.ssl.enable", "true"); // required for Gmail
 props.put("mail.imap.sasl.enable", "true");
 props.put("mail.imap.sasl.mechanisms", "XOAUTH2");
 props.put("mail.imap.auth.login.disable", "true");
 props.put("mail.imap.auth.plain.disable", "true");

Для этой цели кажется, что вы должны использовать динамическую c регистрацию потока, чтобы вы могли сначала выполнить запрос токена, а затем зарегистрировать этот Mail.imapIdleAdapter() на основе результата первого запроса: https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java -dsl-среда-потоки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...