使用Microsoft Entra ID OAuth2.0认证Outlook IMAP失败求助
无法通过IMAP连接Outlook的问题
- 已创建具备全部必要权限的Microsoft Entra应用
- 完成认证流程后成功获取access_token、id_token和refresh_token
- 微软文档说明access_token应为v1或v2格式的JWT,但实际获取的令牌非该格式却可正常调用API
- 将令牌转换为SASL XOAUTH2令牌后尝试连接IMAP始终失败(已开启邮箱IMAP权限)
- 分别使用Ruby(net/imap搭配gmail_xoauth)和Node.js(imap/node-imap)进行尝试,无法定位问题,若问题无法解决计划改用API读取邮件
Ruby代码示例
require 'gmail_xoauth' require 'net/imap' imap = Net::IMAP.new('outlook.office365.com', port: 993, ssl: true) imap.authenticate('XOAUTH2', email, 'MY-TOKEN')
Node.js代码示例
let base64Encoded = Buffer.from([`user=osamainayat@hotmail.com`, `auth=Bearer ${token}`, '', ''].join('\x01'), 'utf-8').toString('base64'); imap = new Imap({xoauth2: base64Encoded, host: 'outlook.office365.com', port: 993, tls: true, debug: console.log});
内容的提问来源于stack exchange,提问作者Osama Inayat
相关产品推荐
相关产品推荐

