vb.net - 带有 UIDS 的 POP3 GetMessages
问题描述
我使用 MailKit 版本 1.18.1.1,我想切换到最新版本,但我不能,因为 GetMessages 不再接受 UIDS 列表,而是想要一个 int32 列表。为什么?有没有可能再次使用旧版本的GetMessages?我的邮件客户端使用将数据库中的 UIDS 列表与 POP 服务器上读取的列表进行比较,以定义要下载的 UIDS。感谢您的任何回复和建议
解决方案
我放弃了接受 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
推荐阅读
- laravel - Laravel 属性未按预期工作
- jenkins - build.gradle 上的依赖特性
- sql-server - 如何转换文本格式以使用 Visual Studio 在 SSAS 上自定义日期格式以在表格中显示?
- r - R Shiny 从动态创建的 ahref 标签下载文件 - 未找到错误
- java - DAO 在大气的 ManagedService 中为空?
- c++ - C++ - 编写代码时提示过多
- java - 如何在构建期间修复此 Duplicate class 错误?
- reactjs - Web 应用程序花费太长时间来确定用户是否经过身份验证
- haskell - 使用 Haskell Stack 构建时添加自定义配置文件
- python - 仅当参数未出现时,argparse 才使用默认值附加操作