借助Microsoft Graph API实现永久退信检测的相关技术问题咨询
方案1:调整Graph API调用获取所需退信头
- 获取完整邮件头:调用
GET /users/{共享邮箱标识}/messages/{邮件ID}接口时,添加$select=internetMessageHeaders查询参数,即可返回所有MIME标准头信息。 - 获取完整EML源文件:如果需要完整邮件内容喂给flufl.bounce,调用
GET /users/{共享邮箱标识}/messages/{邮件ID}/$value即可得到原始EML文件。注意必须为应用分配应用级别的Mail.Read或更高权限,且已通过 Azure AD 管理员授权,委托权限无法在客户端凭据流下正常使用该接口。 - 退信内容定位:你需要的
message/delivery-status属于退信多部分MIME结构的子节点,不是顶层邮件头,拿到完整EML后分层解析MIME结构提取对应子部分,即可正常被flufl.bounce识别,无需额外修改检测逻辑。
方案2:直接使用已正式可用的IMAP OAuth客户端凭据流
- 微软365的IMAP协议OAuth2.0客户端凭据流已经正式发布,无需等待后续更新。配置后即可沿用你之前基于IMAP的成熟检测逻辑,配置步骤如下:
- 在Azure AD的应用注册页,添加
Office 365 Exchange Online资源下的IMAP.AccessAsApp应用权限,提交管理员同意 - 通过Exchange Online PowerShell为该应用的服务主体授予目标共享邮箱的IMAP访问权限
- 完成配置后即可用支持OAuth2认证的IMAP客户端访问共享邮箱,直接使用之前验证过的flufl.bounce检测逻辑即可
- 在Azure AD的应用注册页,添加
内容的提问来源于stack exchange,提问作者vlad ov
相关产品推荐
相关产品推荐

