Java、Python などから IMAP にアクセスするためのライブラリが多数あることを認識しています。
簡単な部分:
- 指定された IMAP サーバー、ログイン、および特定のフォルダー名
- そのフォルダー内のすべてのメッセージを削除します (または、その方が簡単または効率的である場合は、フォルダーを削除しますか?)
非典型的な部分:
- N 個の削除ごとに抹消を行う
- サーバーがビジー状態になるように、いくつかの再試行とバッチ サイズのロジックを含めます。セッションごとに 100 件のメッセージを削除して消去するだけでも役に立ちます。
- すべてのヘッダーをダウンロードしないでください。
その最後の点が問題です。私が試したすべての電子メール クライアントは、20,000 件の電子メール ヘッダーのダウンロードを停止します。これを見る必要はありません。
POP3 スクリプトを使用して、1、2、3 の連続した ID を指定しました ...
しかし、私が見たすべての IMAP の例は、ヘッダーから取得したフィールドを使用しているようです。IMAP メッセージを削除するには、推測できない ID が必要なのではないでしょうか? (そして、クエリを実行することによってのみ取得できますか?)
ヘッダーを取得する必要がある場合、少なくともこれをできるだけコンパクトにすることはできますか? それとも、一度に 100 個だけやらせてくれますか?
または、メール クライアントの UI を使用してフォルダー全体を削除しようとしましたが、うまくいかないようです。最初にすべてのヘッダーをゴミ箱に移動しようとしていると思いますが、それで失敗するため、消去部分に到達することはありません。したがって、フォルダーの削除が実際にその内容を削除するよりも効率的かどうかはわかりません。
どんな考えでも大歓迎です。私は通常、Java または Python で作業しますが、柔軟性があります。これはライブラリの問題ではなく、プロトコルの問題だと思います。