2012-03-24 7 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

Q:ここ はコードであるので、それはあなたがInterIMapとのメッセージを「削除」することはできません)のように聞こえると、b)あなたもことはできませんInterIMapと「クリアごみ箱」へ、正しい?この記事を見て、それが役立つかどうかを見てください:http://stackoverflow.com/questions/2491939/cant-mark-email-read-with-interimap-folder-is-read-only – paulsm4

答えて

1

受信トレイまたはカスタムフォルダのいずれかからメッセージを削除しても、[Gmail] /すべてのメールには引き続き表示されます。

理由は次のとおりです。メッセージを削除すると、受信トレイにあるメッセージを識別するラベルを含め、メッセージからそのフォルダのラベルが削除されます。

[Gmail]/[すべてのメール]には、ラベルが添付されているかどうかにかかわらず、すべてのメッセージが表示されます。

  1. 移動して、[Gmailの] /ゴミ箱フォルダに:あなたは永久にすべてのフォルダからメッセージを削除したい場合は

  2. [Gmail] /ごみ箱フォルダから削除します。

あなたはここで詳細を見つけることができます:私は手動でGmailでごみ箱フォルダを削除嫌い http://www.limilabs.com/blog/delete-email-permanently-in-gmail

+1

私は既にInterIMAPでこれを試していました私が使用していたが、それはあなたのリンクからダウンロードしたMail.dllでしか動作しませんでした。とにかく、解決のおかげで、それは今私のために働いています..何が目標だった。 –

2

。毎日スパムに満ちています。 だから、私の仕事をするために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(); 
      }  
     } 
    } 
} 
関連する問題