带有UIDS的POP3 GetMessages

时间:2019-05-25 17:16:33

标签: vb.net mailkit

我使用的是MailKit版本1.18.1.1,我想切换到最新版本,但我不能,因为GetMessages不再接受UIDS列表,而是要有int32列表。为什么?是否无法再次使用旧版本的GetMessages?我的邮件客户端用于将数据库中的UIDS列表与POP服务器上的读取内容进行比较,以定义要下载的UIDS。感谢您的任何答复和建议

1 个答案:

答案 0 :(得分:0)

我删除了接受UID的API,因为它要求MailKit保留自己的UID到索引映射的副本,这不仅意味着更多的内存使用,而且与服务器同步也更加复杂。

您现在需要做的是调用client.GetMessageUids()以获得您自己的UID列表,然后根据该UID列表找出想要的索引。

var uids = client.GetMessageUids ();
var indexes = new List<int> ();

for (int i = 0; i < uids.Length, i++) {
    if (!HaveSeen (uids[i]))
        indexes.Add (i);
}

// now you have a list of indexes that you want