如何使用Ruby Mail gem通过POP3和OAuth2令牌获取Office 365邮件?
使用Ruby Mail gem通过OAuth2访问Outlook POP3邮件
微软已停止支持POP3协议的用户名密码登录,必须改用OAuth2令牌认证。针对你已获取到令牌的情况,只需调整Mail gem的POP3配置即可实现兼容:
修改后的代码示例
Mail.defaults do retriever_method :pop3, address: "outlook.office365.com", port: 995, user_name: username, # 保持原Outlook邮箱地址不变 password: oauth2_access_token, # 替换为你的OAuth2访问令牌 enable_ssl: true, authentication: :xoauth2 # 核心:指定使用XOAuth2认证方式 end all_mails = Mail.all
关键说明
authentication: :xoauth2:这是让POP3适配器启用OAuth2认证的核心参数,必须添加password字段不再填原密码,而是填入你已获取的有效OAuth2访问令牌user_name仍使用你的Outlook邮箱地址,无需修改
注意事项
- 确保你的OAuth2令牌已授权
POP.AccessAsUser.All权限(在Azure AD应用注册的权限配置中确认) - 令牌有有效期限制,过期后需要重新获取新的令牌才能继续访问
- 首次测试建议用
Mail.first拉取单封邮件验证,避免一次性拉取大量邮件导致异常
内容的提问来源于stack exchange,提问作者Evilmuffin
相关产品推荐
相关产品推荐

