如何通过Microsoft Graph监听新收到的邮件?
监听新邮件的方案:Microsoft Graph 订阅(Subscriptions)
是的,你可以通过Microsoft Graph的订阅功能实现实时监听新收到的邮件,无需反复调用GET接口轮询。具体实现方式如下:
- 创建订阅:调用
POST /subscriptions接口,指定监听资源为用户邮件(例如/users/{userId}/messages),设置你的服务端接收通知的端点地址,触发条件设为created(对应新邮件到达事件)。
示例请求体:{ "changeType": "created", "notificationUrl": "https://your-server-domain.com/email-notify", "resource": "/users/{userId}/messages", "expirationDateTime": "2024-10-05T12:00:00Z", "clientState": "your-custom-secret-string" } - 验证通知端点:创建订阅时,Microsoft Graph会向你填写的
notificationUrl发送携带validationToken的GET请求,你需要直接返回该token完成端点验证,订阅才会正式生效。 - 接收并处理通知:当有新邮件到达时,Graph会向你的通知端点发送POST请求,包含新邮件的ID等关键信息,你可通过该ID调用GET接口获取完整邮件内容。
- 续订订阅:订阅存在有效期(最长3天),需在过期前调用
PATCH /subscriptions/{subscriptionId}接口续订,延长监听时效。
注意事项:
- 你的通知端点必须支持HTTPS,且能被公网访问(测试阶段可使用内网穿透工具)。
clientState用于校验通知合法性,接收通知时需核对该值,防止伪造请求。
内容的提问来源于stack exchange,提问作者samsonmarandi
相关产品推荐
相关产品推荐

