如何从我的 Gmail 收件箱中获取有时间限制的 IOS SDK 中的电子邮件?

Posted

技术标签:

【中文标题】如何从我的 Gmail 收件箱中获取有时间限制的 IOS SDK 中的电子邮件?【英文标题】:How to fetch emails from my Gmail Inbox that are in a time bound IOS SDK? 【发布时间】:2017-11-12 06:26:52 【问题描述】:

我想从我的 Gmail 收件箱中提取电子邮件。我知道我可以使用 Google Search API:

("GET https://www.googleapis.com/gmail/v1/users/me/messages?q="in:sent after:2014/01/01 before:2014/01/30" ").

我可以使用

以分页方式成功获取电子邮件
 let batchQuery = GTLRBatchQuery ()
        for message in labelsResponse.messages! 
            let query = GTLRGmailQuery_UsersMessagesGet.query(withUserId: "me", identifier: message.identifier!)
            query.format = kGTLRGmailFormatFull
            batchQuery.addQuery(query)

        
        self.service.shouldFetchNextPages = true
        self.service.executeQuery(batchQuery,
                                  delegate: self,
                                  didFinish: #selector(self.displayMessageDetailsList(_:finishedWithObject:error:)))

但我不知道如何查询 Google Message search API 并执行该查询。

【问题讨论】:

【参考方案1】:

您正在使用 GTLRGmailQuery_UsersMessagesGet 哪个 AFAIK,只收到一个特定的(一个)邮件。

您应该改用GTLRGmailQuery_UsersMessagesList,您可以在其中实际使用q 属性到search messages, the same way like in the RESTful API:

@property(复制,可为空)NSString *q

讨论

只返回匹配指定查询的消息。支持与 Gmail 搜索框相同的查询格式。例如,“from:someuser\@example.com rfc822msgid:is:unread”。

在 GTLRGmailQuery.h 中声明

【讨论】:

嗨,Al 我写了这个 query.q = "in:inbox after:2016/01/01 before:2017/01/1" 以获取日期为 in 的邮件,但你能告诉我应该什么查询写来获取那些有日期的邮件,并且在他们的内容中有一个词,例如“银行”...... AFAIK,您不能使用搜索正文(参见 here,但您可以在标题中使用 contains 进行搜索。

以上是关于如何从我的 Gmail 收件箱中获取有时间限制的 IOS SDK 中的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

GMail API:获取收件箱中最早的电子邮件的最快方式

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

Python 和 GmailAPI:如何监控 Gmail 收件箱以获取新电子邮件?

使用 .NET MVC 获取 gmail 电子邮件

电子邮件不会从 Mandrill 发送到 Gmail

尝试通过 python 获取电子邮件