微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在时间戳后获取新的 Gmail 电子邮件

如何解决在时间戳后获取新的 Gmail 电子邮件

我正在浏览 Gmail API 文档 (https://developers.google.com/gmail/api),我能够阅读收件箱中的所有用户电子邮件

例如片段(阅读完整的电子邮件列表):

for {
        req := svc.Users.Messages.List("me")
        r,_ := req.Do()
        for _,m := range r.Messages {
            msg,_ := svc.Users.Messages.Get("me",m.Id).Do()
            date := ""
            for _,h := range msg.Payload.Headers {
                if h.Name == "Date" {
                    date = h.Value
                    break
                }
            }
            msgs = append(msgs,message{
                ...
            })
        }
    }

现在,当收到新电子邮件时,我也想阅读它们(立即或一段时间后)。我可以写为目的的计划作业,但我不知道我是否可以在特定的时间戳记后或电子邮件标识后取邮件。我不想一遍又一遍地阅读一大堆电子邮件来找出新电子邮件,这样会涉及很多不必要的计算。有什么办法可以让我更轻松地完成这项任务吗?

解决方法

Looking at the docs,看起来它支持一个查询参数,q

查询参数支持与 Gmail 搜索栏中可用的选项相同的选项:

只返回匹配指定查询的消息。支持与 Gmail 搜索框相同的查询格式。例如,“from:someuser@example.com rfc822msgid:somemsgid@example.com is:unread”。使用 gmail.metadata 范围访问 api 时无法使用参数。

这意味着您可以执行类似 "after:YYYY/MM/DD" 或时间戳为 "after:1616819452" 的操作。

req := svc.Users.Messages.List("me").Q("after:2021/01/01")

在此处查看完整用法https://pkg.go.dev/google.golang.org/api/gmail/v1#UsersMessagesListCall.Q

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。