* Michelle Konzack (linux4michelle@tamay-dogan.net) [15.08.08 14:22]: > Hello Perl-Programmierer, > > bin gerade dabei ein kleines Tool zu schreiben bei dem ich von ausge- > wählten Mailfoldern die Anzahl der NUEN und ALLER messages ermittlen > muß. > > Ich verwende dazu Net::IMAP::Simple > > Nun, gibt es eine bessere (und schnellere) Möglichkeit, als die folgende > > 1) $imap->select($MAILFOLDER) > 2) $imap->list() > gibt einen hash auf die messages zurück =>TOTAL messages > 3) $imap->seen($MESSAGE) > auf JEDER message => gelesene messages. > (warum gibt es das nicht als new()?) > > und dann die $SEEN von den $TOTAL abziehen um die neuen zu bekommen. > > Das problem ist dabei, das meine > > INBOX.ML_devel.linux-kernel@vger_kernel_org/ > > gut mal 20.000 messages durchschnittlich hat, bevor sie ins Archive > vergeschoben werden. Dann noch das pollen von so um die 150 Mailfolder > und ich versterbe an Altersschwäche... > Also daran lässt sich nur was machen wenn Du 'mal 'ne ordentliche Archivierung durchführst, und die Ordner mit uralt mails einfach ignorierst. > Hat jemand eine Idee, wie man das ganze schneller machen kann? > Also bei dieser Masse hilft nur vorheriges sortieren mit was anderem. > Eventuell auch andere Perl-Bibliothek? > Also verausgesetzt Du verschiebst Deine zu archivierenden Mails vorher per imapfilter nach Archiv, ist diese Lösung recht schnell. #!/usr/bin/perl use strict; use warnings; use Mail::IMAPClient; my $host = "Deine_Providerin"; my $port = xxx; my $id = 'DeinLogin'; my $pass = "dein_passwort"; my $imap = Mail::IMAPClient->new( Server => $host, Port => $port, User => $id, Password => $pass, # Debug => 1, Clear => 5, # Unnecessary since '5' is the default ) or die "Cannot connect to $host as $id"; foreach my $folder ($imap->folders()) { if ($folder =~ m/Archiv*/) { next; }; $imap->select($folder); my $unseen =$imap->unseen_count($folder); if ($unseen >0) { printf " %37s %4d/%4d\n", $folder, $unseen, $imap->message_count($folder); } } $imap->close(); HTH Sebastian -- " Religion ist das Opium des Volkes. " Karl Marx SEB@STI@N GÜNTHER mailto:samson@guenther-roetgen.de
Attachment:
pgpd5c7EOZ8SL.pgp
Description: PGP signature