使用Indy检索Gmail标签?

时间:2015-07-15 02:38:59

标签: delphi indy indy10

根据this thread(以及源代码中的各种提示,如变量名称),Indy支持获取gmail标签,但不支持设置或删除它们。但是,到目前为止,此功能似乎没有记录。任何人都可以帮我填写有关如何使用Imap检索Gmail标签的详细信息吗?

我应该调用哪些函数来检索标签并让Indy为我解析结果?虽然我当然可以手动调用SendCmd()来请求标签('C2 UID FETCH 92(X-GM-LABELS)'),类似于我手动设置/删除标签(Indy尚未执行),解析我知道FETCH结果已经内置到Indy中,所以我不想在这里重新发明轮子来解码FETCH结果。现在,为了简单起见,假设我只是想要标签而不是其他信封/标题/消息部分。

似乎有很多功能可能(或可能没有)相关,但有很多可供选择的功能,而且很多功能只有自动生成的文档,找出要尝试的功能,以及找到实际标签的属性(或子属性)或函数有点令人生畏。谁能指出我在这方面的正确方向?

1 个答案:

答案 0 :(得分:0)

  

Indy支持获取gmail标签但不支持设置或删除它们。

不完全。 TIdIMAP4支持按Gmail标签搜索电子邮件,但尚不支持检索特定电子邮件的Gmail标签。

  

但是,到目前为止,此功能似乎没有记录。

过去几年在Indy中添加的许多功能仍然没有记录。

  

有人可以帮我填写有关如何使用Imap检索Gmail标签的详细信息吗?

Some GMail IMAP extensions added to TIdIMAP4

  

TIdIMAP4SearchKey枚举已更新为新项目,以支持SearchMailBox发出的SEARCH命令中的X-GM-RAW,X-GM-MSGID,X-GM-THRID和X-GM-LABELS扩展 ()和UIDSearchMailBox()方法

     

TIdIMAP4FetchDataItem枚举已更新为新项目,以支持FETCH命令中的X-GM-MSGID,X-GM-THRID和X-GM-LABELS扩展,但目前没有TIdIMAP方法使用这些新增功能项目

     

STORE命令中对X-GM-LABELS扩展的支持尚未实现

  

我应该调用哪些函数来检索标签并让Indy为我解析结果?

此时支持GMail标签的唯一方法是TIdIMAP4.SearchMailBox()TIdIMAP4.UIDSearchMailBox()

  

虽然我当然可以手动调用SendCmd()来请求标签('C2 UID FETCH 92(X-GM-LABELS)'),类似于我手动设置/删除标签的方式(Indy还没有这样做) ),解析FETCH结果是我知道已经内置到Indy中的东西,所以我不想在这里重新发明轮子来解码FETCH结果。

抱歉,但你必须这样做。虽然TIdIMAP4确实在FETCH响应中解析了标记,但它会丢弃TIdMessageFlagsSet(已回答,已标记,已删除,草稿,已查看,最近)不支持的任何标记。因此,虽然Gmail标签可以自动解析,但TIdIMAP4无处可以保存它们。

  

有人能指出我在正确的方向吗?

目前,您必须手动实施。