如何通过API统计G Suite SMTP中继方式发送的邮件数量?
统计G Suite SMTP中继发送的邮件数量
嘿,我来帮你理清这个问题的解决方案:
首先,你提到的Gmail Report API确实存在延迟(通常24-48小时),而且没法精准过滤SMTP中继的邮件——这是因为它的统计维度偏向用户邮箱的整体收发行为,而非针对中继通道的细分统计。
另外,你在管理控制台里用到的「邮件日志搜索」,对应的其实是Admin SDK的Reports API中的邮件日志模块,而非Email Audit API。Email Audit API的核心功能是创建邮件监控器,用来追踪特定用户的邮件内容,并不适合做批量的发送量统计,所以这不是你需要的工具。
正确的解决方式:用Admin SDK Reports API过滤SMTP中继邮件
你可以通过Admin SDK的reports.users.messages.list接口,配合精准的筛选条件来统计SMTP中继发送的邮件数量,而且数据延迟很低(通常几分钟内),完全能满足你当日统计的需求。
具体操作步骤:
权限准备
- 先在G Suite管理控制台启用Admin SDK
- 给你的服务账号授权「查看审核日志」和「查看报表」权限,确保它能访问邮件日志数据
构造API请求
调用接口时,需要指定以下关键参数来筛选SMTP中继的发送邮件:eventName=sending:只统计发送出去的邮件filters=delivery_method:smtp_relay:精准定位通过SMTP中继发送的邮件startTime和endTime:设置当日的时间范围(格式示例:2024-05-20T00:00:00Z到2024-05-20T23:59:59Z)
示例GET请求:
GET https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/gmail?eventName=sending&filters=delivery_method:smtp_relay&startTime=2024-05-20T00:00:00Z&endTime=2024-05-20T23:59:59Z统计邮件数量
- API返回的响应中,
items数组就是符合条件的邮件列表,直接统计数组长度即可得到数量 - 如果结果超过100条,响应会包含
nextPageToken,你需要循环请求直到没有下一页,累加所有页面的邮件数量
- API返回的响应中,
额外说明
这个方式和你在管理控制台里的邮件日志搜索逻辑完全一致,只是通过API实现了自动化统计,数据时效性和控制台同步,能完美满足你实时统计当日SMTP中继邮件量的需求。
内容的提问来源于stack exchange,提问作者Marco Mangiante
相关产品推荐
相关产品推荐

