THu*_*ter 7 c# asp.net imap c#-4.0
我正在尝试使用ae.net.mail的IMAP功能将邮件移动到邮箱中的另一个文件夹.问题是虽然邮件被移动到目标文件夹,但它不会从INBOX中删除.
我在删除邮件时也遇到了问题.在这种情况下,我发现消息的状态只是从看不见变为可见.
这是我尝试过的:
using (ImapClient ic = new ImapClient(
host, email, password, ImapClient.AuthMethods.Login, 993, true))
{
ic.SelectMailbox("INBOX");
string[] uids = ic.Search(SearchCondition.From("someone@gmail.com"));
MailMessage[] messages =
ic.GetMessages(uids[0], uids[uids.Length - 1], false);
ic.MoveMessage(uids[0], "Junk");
}
Run Code Online (Sandbox Code Playgroud)
标准IMAP协议没有MOVE命令(但有一个扩展添加它).因此,根据您的IMAP服务器,客户端可能需要实现MOVE为UID COPY+ UID STORE +FLAGS.SILENT (\Deleted)+ UID EXPUNGE,但这假定服务器支持UIDPLUS扩展.如果服务器也不支持UIDPLUS,则基本上不可能正确实现.所有你能做的就是COPY+ STORE +FLAGS.SILENT (\Deleted)但不能这样做EXPUNGE因为没有办法限制将被删除的消息(我想你可以取消标记任何其他已删除的消息,然后EXPUNGE,然后将它们重新标记为\ Deleted,但这开始变为有风险).
这可以解释为什么消息可能仍然存在于INBOX中(尽管它们至少应标记为已删除).
不确定为什么将邮件标记为已删除将其标记为已查看.这似乎是AE.NET.Mail中的一个错误.
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |