3

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();

前もって感謝します。

4

2 に答える 2

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();
            }    
        }
    }
}
于 2016-10-08T04:22:39.867 に答える
1

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

その理由は次のとおりです。ほとんどの場合、メッセージを削除すると、そのフォルダのラベルがメッセージから削除されます。これには、メッセージが受信トレイにあることを示すラベルも含まれます。

[Gmail] / All Mailには、ラベルが付いているかどうかに関係なく、すべてのメッセージが表示されます。

すべてのフォルダからメッセージを完全に削除する場合:

  1. [Gmail]/Trashフォルダに移動します。
  2. [Gmail]/Trashフォルダから削除します。

あなたはここでより多くの詳細を見つけることができます: http ://www.limilabs.com/blog/delete-email-permanently-in-gmail

于 2012-04-02T09:26:34.693 に答える