2009-10-12 8 views
1

Je voudrais "diff" deux dossiers IMAP (sur deux serveurs différents) pour comparer les filtres anti-spam, je voudrais avoir un outil de ligne de commande (linux) pour obtenir seulement les en-têtes (pas le répertoire entier, par exemple 'iSync' ou similaire), quelque chose comme ceci:Différents dossiers IMAP?

$ imapget --subjects -p = mot de passe utilisateur @ serveur

ou ceci:

$ imapget --format « DATE $ - $ dE - $ SUBJ "-p = mot de passe utilisateur @ serveur

('imapget' cmd est fictif)

Que suggérez-vous?

Merci

+0

Ceci appartient probablement à serverfault, ou peut-être à superutilisateur. –

Répondre

0

La façon de easies est probablement obtenir perl et Mail :: IMAPClient et utiliser quelque chose comme:

 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; 
    } 
1

Je refléterait les deux dossiers IMAP aux dossiers Maildir locaux en utilisant quelque chose comme OfflineIMAP , imapsync, imapcopy, isync ou mailsync. Puis j'utiliserais quelque chose comme mailutils pour sortir des listes de messages dans les deux et les diff.

Questions connexes