基本概况
Microsoft & Google 摒弃密码直接IMAP登录的方式。应用密码也无法登录。
参考资料
1,https://javaee.github.io/javamail/OAuth2
2,使用 OAuth 对 IMAP、POP 或 SMTP 连接进行身份验证 | Microsoft Learn
3,微软身份平台和 OAuth 2.0 授权代码流 - Microsoft identity platform | Microsoft Learn
关键代码
软件版本
1,Spring boot 3.3.0
2,JDK 21
3,Spring cloud 2023.0.1
重点
前提:完成对应平台应用的创建,以Microsoft为例
快速入门:创建 Microsoft Entra 租户 - Microsoft identity platform | Microsoft Learn
获取token:以Microsoft为例,
1,请求授权代码。此处scope参数参考“参考资料第2点中权限部分”:
微软身份平台和 OAuth 2.0 授权代码流 - Microsoft identity platform | Microsoft Learn
2,使用 client_secret 请求访问令牌。
微软身份平台和 OAuth 2.0 授权代码流 - Microsoft identity platform | Microsoft Learn
3,第二点成功后会有一个 “access_token” 的返回参数。此参数的值可用于后续登录。
登录代码
1 | String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; |
其中核心配置是“properties.setProperty(“mail.imap.auth.mechanisms”, “XOAUTH2”);”,加入这个参数意味这你使用OAuth2的认证方式。只需要把原有的password替换为token,剩余部分javamail会帮你处理(见参考资料1)
- 本文链接: https://njliligan.github.io/2024/10/11/tech/email/email-oauth2-guide/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。