Tim*_*ioz 3 c# gmail imap gmail-imap mailkit
我正在尝试使用MailKit库开发ImapClient.
如何从Gmail帐户中永久删除邮件,而不是将其移至"废纸篓"文件夹?
jst*_*ast 11
在大多数IMAP服务器上,您执行此操作的方式是:
folder.AddFlags (uids, MessageFlags.Deleted, true);
Run Code Online (Sandbox Code Playgroud)
这将在\Deleted消息上设置标志.下一步将是:
folder.Expunge (uids);
Run Code Online (Sandbox Code Playgroud)
这将清除文件夹中的消息.
假设这对GMail不起作用,可能是因为只要将\Deleted标志添加到GMail IMAP服务器上的消息,它就会将其移动到Trash文件夹(超出IMAP客户端的控制范围).
这是一个可能有用的想法,但......
// First, get the globally unique message id(s) for the message(s).
var summaries = folder.Fetch (uids, MessageSummaryItems.GMailMessageId);
// Next, mark them for deletion...
folder.AddFlags (uids, MessageFlags.Deleted, true);
// At this point, the messages have been moved to the Trash folder.
// So open the Trash folder...
folder = client.GetFolder (SpecialFolder.Trash);
folder.Open (FolderAccess.ReadWrite);
// Build a search query for the messages that we just deleted...
SearchQuery query = null;
foreach (var message in summaries) {
var id = SearchQuery.GMailMessageId (message.GMailMessageId);
query = query != null ? query.Or (id) : id;
}
// Search the Trash folder for these messages...
var matches = folder.Search (query);
// Not sure if you need to mark them for deletion again...
folder.AddFlags (matches, MessageFlags.Deleted, true);
// Now purge them from the Trash folder...
folder.Expunge (matches);
Run Code Online (Sandbox Code Playgroud)
而且你已经完成了......
| 归档时间: |
|
| 查看次数: |
2328 次 |
| 最近记录: |