使用 gmail API 阅读独特的邮件

Posted

技术标签:

【中文标题】使用 gmail API 阅读独特的邮件【英文标题】:Reading Unique mails using gmail API 【发布时间】:2015-09-15 20:14:53 【问题描述】:

我正在使用 Gmail API 阅读邮件,在那里我可以成功地将邮件下载到我的系统。这个想法是浏览所有标签并下载邮件,但这会导致重复的邮件下载,因为单个邮件可以属于不同的标签。 我尝试查找标签 $All 以获取唯一邮件,但我猜最新的 Gmail API 不支持所有邮件标签。有没有办法在 gmail 中阅读独特的邮件?

【问题讨论】:

如果你想下载所有邮件,为什么要通过标签过滤它们? 我想下载所有独特的邮件。 在这种情况下,列表消息应该足以满足您的要求。不要按任何标签过滤,您应该得到唯一消息列表 如果您能分享一些相同的链接,我将不胜感激 在您的 GMail ID 上使用 developers.google.com/gmail/api/v1/reference/users/messages/… 尝试一下,您应该会看到返回的所有唯一消息 ID 【参考方案1】:

可以使用 Gmail 同步指南来同步邮箱:

https://developers.google.com/gmail/api/guides/sync

使用带有标签 ID 过滤器的 Gmail API 的 history.list() 方法并检查消息 ID 的“messagesAdded”部分。您将不会获得消息正文,只有 ID,随后必须使用收到的消息 ID 调用 message.get() 以获取消息正文。

如果一条消息有多个标签,history.list() 将为您提供直接在特定标签中接收的消息,因此如果您使用不同的标签 ID 调用 history.list(),您将不会收到两次相同的消息。

您还可以通过在应用程序中处理重复消息来避免重复消息,方法是将每个消息 ID 存储在缓存存储(如 memcache 或内存中的哈希表)中,以避免处理重复消息。

【讨论】:

以上是关于使用 gmail API 阅读独特的邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gmail 的 .NET api 阅读大尺寸电子邮件

在 c# 中使用 gmail API 修改消息标签时权限不足 [403] 错误

检查邮件是不是被阅读,gmail api

添加用户电子邮件以使用 Gmail API 从收件箱中读取特定电子邮件

使用 Gmail api 通过 Android 应用发送邮件

收到来自 gmail users.watch API 的推送通知后如何阅读用户 gmail?