1

我正在使用免费的 lib ImapX,并且正在制作一个应用程序来将我的所有邮件标记为已收到。谁能帮我一把?

编辑:没关系,我自己发现了。当您处理它们时,它们会被标记为已读。

4

2 回答 2

1

您需要添加标志,这将帮助您更新所看到的状态。

  foreach (var mess in messages)
  {
   mess.SEEN = true; 
  }

如果您无法更改状态,请告诉我。

于 2014-11-16T10:57:59.037 回答
0

首先,如果您使用的是旧的 ImapX 库,我邀请您升级到ImapX 2。它正在不断地开发和支持。还有所有常见操作的示例代码。

消息的Process方法不会将消息标记为已读,它只会下载包括附件在内的整个消息。在您的情况下,如果您调用将Search第二个参数设置为的方法true,则不必为每条消息都调用它。

要将消息标记为已读,只需使用AddFlagMessage 的方法:

ImapX.FolderCollection folders = imapclient.Folders;
ImapX.MessageCollection messages = imapclient.Folders["INBOX"].Search("UNSEEN", true); 
foreach (var mess in messages)
{
    mess.AddFlag(ImapFlags.SEEN); 
}
于 2013-07-09T20:36:03.947 回答