1

我想“比较”两个 IMAP 文件夹(在两个不同的服务器上)来比较垃圾邮件过滤器,我想有一个命令行工具(linux)来获取标题(不是整个目录,例如使用 'isync ' 或类似的),像这样:

$ imapget --subjects -p=密码用户@服务器

或这个:

$ imapget --format "$DATE - $FROM - $SUBJ" -p=密码用户@服务器

('imapget' cmd 是虚构的)

你有什么建议?

谢谢

4

2 回答 2

1

我会使用 OfflineIMAP、imapsync、imapcopy、isync 或 mailsync 之类的东西将两个 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 回答