我正在使用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/