2012-03-24 82 views
3

我试图通过InterImap库访问我的Gmail邮箱。它显示我的消息,但无法删除消息。我还发现了一个方法“EmptyFolder()”,但不起作用。如何用C清空Gmail垃圾箱#

所有为我工作的是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

问:所以这听起来像一个),你不能够“删除”与InterIMap消息,和b)你也不能“清除垃圾”与InterIMap ,对吗?请看这篇文章,看看它是否有帮助:http://stackoverflow.com/questions/2491939/cant-mark-email-read-with-interimap-folder-is-read-only – paulsm4 2012-03-24 17:32:00

回答

1

如果您从收件箱或某个自定义文件夹中删除邮件,该邮件仍将出现在[Gmail] /所有邮件中。

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

[Gmail]/All Mail会显示您的所有消息,无论它们是否贴有标签。

如果你想所有文件夹中永久删除消息:

  1. 将其移动到[Gmail] /垃圾桶文件夹。
  2. 将其从[Gmail] /垃圾箱文件夹中删除。

你可以在这里找到更多的细节: http://www.limilabs.com/blog/delete-email-permanently-in-gmail

+1

我已经试过这与InterIMAP我正在使用,但它只适用于从您的链接下载的Mail.dll。无论如何,感谢解决方案,它现在正在为我工​​作..无论目标是什么。 – 2012-04-03 19:10:00

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("[email protected]", "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(); 
      }  
     } 
    } 
}