【问题标题】:How to Empty Gmail Trash with C#如何使用 C# 清空 Gmail 垃圾箱
【发布时间】:2012-04-08 21:03:02
【问题描述】:

我尝试使用 InterImap Library 访问我的 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();

提前致谢。

【问题讨论】:

  • 问:听起来 a) 您无法使用 InterIMap “删除”消息,b) 您也无法使用 InterIMap “清除垃圾”,对吗?请看这篇文章,看看是否有帮助:stackoverflow.com/questions/2491939/…

标签: c# .net imap gmail-imap interimap


【解决方案1】:

我不喜欢手动删除 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();
            }    
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您从收件箱或自定义文件夹中删除邮件,它仍会显示在 [Gmail]/所有邮件中。

    原因如下:在大多数情况下,删除邮件只是从邮件中删除该文件夹的标签,包括将邮件标识为在您的收件箱中的标签。

    [Gmail]/All Mail 显示您的所有邮件,无论它们是否附有标签。

    如果您想从所有文件夹中永久删除邮件:

    1. 将其移至 [Gmail]/Trash 文件夹。
    2. 从 [Gmail]/Trash 文件夹中删除它。

    您可以在此处找到更多详细信息: http://www.limilabs.com/blog/delete-email-permanently-in-gmail

    【讨论】:

    • 我已经用我正在使用的 InterIMAP 进行了尝试,但它只适用于从您的链接下载的 Mail.dll。无论如何,感谢您的解决方案,它现在对我有用.. 无论目标是什么。
    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2014-06-07
    相关资源
    最近更新 更多