我尝试使用InterImap库访问我的Gmail邮箱。它在那里显示我的消息,但无法删除消息。我还找到了一个方法“EmptyFolder()”但不起作用。
所有对我有用的都是MoveMessageToFolder(),但这不是我需要的。
请使用相同或任何其他库帮我清空带有C#的垃圾箱。我需要这样做的代码示例。
这是我设法编写的代码。
var config = new InterIMAP.IMAPConfig("imap.gmail.com", "<my gmail username>", "<my gmail password", true, true, "");
var client = new InterIMAP.Synchronous.IMAPClient(config, new InterIMAP.IMAPLogger(config, new object[] { }), 1);
var trash = client.Folders["[Gmail]"].SubFolders["Trash"];
trash.EmptyFolder();
client.Logoff();
先谢谢。
答案 0 :(得分:2)
我不喜欢手动删除Gmail中的垃圾文件夹。它每天都充满了垃圾邮件。 所以我复制了c#代码为我做这份工作。我从Limilabs下载并使用了mail.dll,评估版。为应用创建Gmail密码。 这是代码:
using System;
using Limilabs.Client.IMAP;
using System.Collections.Generic;
namespace delete_gmail_trash
{
class Program
{
static void Main(string[] args)
{
using (Imap imap = new Imap())
{
imap.ConnectSSL("imap.gmail.com");
imap.UseBestLogin("username@gmail.com", "password for Gmail apps");
// Recognize Trash folder
List<FolderInfo> folders = imap.GetFolders();
CommonFolders common = new CommonFolders(folders);
FolderInfo trash = common.Trash;
// Find all emails we want to delete
imap.Select(trash);
List<long> uidList = imap.Search(Flag.All);
foreach (long uid in uidList)
{
imap.DeleteMessageByUID(uid);
Console.WriteLine("{0} deleted", uid);
}
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
imap.Close();
}
}
}
}
答案 1 :(得分:1)
如果您从收件箱或其中一个自定义文件夹中删除邮件,它仍会显示在[Gmail] /所有邮件中。
原因如下:在大多数情况下,删除邮件只是从邮件中删除该文件夹的标签,包括标识邮件在收件箱中的标签。
[Gmail] /所有邮件会显示您的所有邮件,无论他们是否附加了标签。
如果要永久删除所有文件夹中的邮件:
您可以在此处找到更多详细信息: http://www.limilabs.com/blog/delete-email-permanently-in-gmail