Папки IMAP отличаются? - PullRequest
       5

Папки IMAP отличаются?

1 голос
/ 12 октября 2009

Я бы хотел "разнести" две папки IMAP (на двух разных серверах) для сравнения спам-фильтров, я хотел бы иметь инструмент командной строки (linux), чтобы получить только заголовки (не весь каталог, например используя 'isync' или подобное), примерно так:

$ imapget --subjects -p = пароль пользователя @ сервер

или это:

$ imapget --format "$ DATE - $ FROM - $ SUBJ" -p = пароль пользователя @ сервер

(команда 'imapget' вымышленная)

Что бы вы предложили?

Спасибо

Ответы [ 2 ]

1 голос
/ 21 ноября 2009

Я бы зеркалировал две папки IMAP в локальные папки Maildir, используя что-то вроде OfflineIMAP, imapsync, imapcopy, isync или mailsync.

Тогда я бы использовал что-то вроде mailutils для вывода списков сообщений в обоих и их различий.

0 голосов
/ 12 ноября 2009

Простой способ, вероятно, получить 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;
     }
...