Spring Integration Mail IMAP是否支持OAuth2? [英] Is Spring Integration Mail IMAP support OAuth2?

查看:64
本文介绍了Spring Integration Mail IMAP是否支持OAuth2?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Spring集成邮件处理imap空闲事件.我想使用令牌而不是用户名和密码来实现IMAP gmail客户端.

I'm using Spring integration mail for imap idle events. I want to implement a IMAP gmail client using the token instead of using username and password.

Spring Integration Mail IMAP是否可以使用访问令牌连接到gmail存储?

Is Spring Integration Mail IMAP able to connect to gmail store with access token?

这是我使用的代码

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();

推荐答案

听起来,我们只需要执行一些REST请求即可获取令牌,并将其与一些Java Mail属性一起将其设置为URL而不是该 [密码] 占位符:

Well, sounds like we just need to perform some REST request to get a token and together with some Java Mail properties set it into the URL instead of that [password] placeholder: 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");

为此,听起来您应该使用动态流注册,因此您可以先执行令牌请求,然后根据第一个请求的结果注册 Mail.imapIdleAdapter(): https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-runtime-flows

For this purpose it sounds like you should use dynamic flow registration, so you can perform token request first and then register that Mail.imapIdleAdapter() based on the result of the first request: https://docs.spring.io/spring-integration/docs/current/reference/html/dsl.html#java-dsl-runtime-flows

这篇关于Spring Integration Mail IMAP是否支持OAuth2?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆