我正在使用ImapX读取Gmail电子邮件帐户,并在读取它们后将其标记为“已读”
据我了解,其他人已经成功实现了:

ImapX.FolderCollection folders = imapclient.Folders;
ImapX.MessageCollection messages = imapclient.Folders["INBOX"].Search("UNSEEN", true);
foreach (var mess in messages)
{
 mess.Process();
}


但是Gmail不会“将这些邮件标记为已读”。
对我所缺少的东西有任何见解吗?

最佳答案

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

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

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

ImapX.Collections.FolderCollection folders = imapclient.Folders;
ImapX.Collections.MessageCollection messages = imapclient.Folders["INBOX"].Search("UNSEEN", true);
foreach (var mess in messages)
{
    mess.AddFlag(ImapX.Flags.MessageFlags.Seen);
}

关于c# - imapX是否将邮件标记为已在Gmail中读取?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16904625/

10-10 15:18