根据this thread(以及源代码中的各种提示,如变量名称),Indy支持获取gmail标签,但不支持设置或删除它们。但是,到目前为止,此功能似乎没有记录。任何人都可以帮我填写有关如何使用Imap检索Gmail标签的详细信息吗?
我应该调用哪些函数来检索标签并让Indy为我解析结果?虽然我当然可以手动调用SendCmd()来请求标签('C2 UID FETCH 92(X-GM-LABELS)'),类似于我手动设置/删除标签(Indy尚未执行),解析我知道FETCH结果已经内置到Indy中,所以我不想在这里重新发明轮子来解码FETCH结果。现在,为了简单起见,假设我只是想要标签而不是其他信封/标题/消息部分。
似乎有很多功能可能(或可能没有)相关,但有很多可供选择的功能,而且很多功能只有自动生成的文档,找出要尝试的功能,以及找到实际标签的属性(或子属性)或函数有点令人生畏。谁能指出我在这方面的正确方向?
答案 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
无处可以保存它们。
有人能指出我在正确的方向吗?
目前,您必须手动实施。