1

スパムフィルターを比較するために(2つの異なるサーバー上の)2つのIMAPフォルダーを「差分」したいのですが、ヘッダーだけを取得するコマンドラインツール(Linux)が必要です(ディレクトリ全体ではなく、たとえば'isyncを使用します)。 'または同様のもの)、次のようなもの:

$ imapget --subjects -p = password user @ server

またはこれ:

$ imapget --format "$ DATE-$ FROM-$ SUBJ" -p = password user @ server

('imapget' cmdは架空のものです)

あなたは何を提案しますか?

ありがとうございました

4

2 に答える 2

1

私は、OfflineIMAP、imapsync、imapcopy、isync、mailsyncなどを使用して、2つのIMAPフォルダーをローカルのMaildirフォルダーにミラーリングします。

次に、mailutilsのようなものを使用して、両方のメッセージのリストを出力し、それらを比較します。

于 2009-11-21T09:19:56.920 に答える
0

簡単な方法は、おそらく perl と Mail::IMAPClient を入手して、次のようなものを使用することです:

     use Mail::IMAPClient;
     my $imap = Mail::IMAPClient->new(
         Server => $imaphost, User => $login, Password => $pass, Uid => 1
     );

     $imap->select("demo_folder");

     my $msgs = $imap->search("ALL");
     for my $h (

      # get specified headers from every message in folder "demo_folder" the

       values %{ $imap->parse_headers( $msgs , "Date", "From", "Subject") } )
     {
         # $h is the value of each element in the hash ref returned
         # from parse_headers, and $h is also a reference to a hash.
         # We'll only print the first occurrence of each field because
         # we don't expect more than one particular header line per
         # message.
         print map { "$_:\t$h->{$_}[0]\n"} keys %$h;
     }
于 2009-11-12T19:47:31.577 に答える