Hallo Christian, Am 2008-03-18 09:07:41, schrieb Christian Brabandt: > Das geht mit awk theoretisch sogar auf der Konsole: ...wenn man kein TLS/SSL verwenden muß. :-/ > ,----[ ~$ cat ~/telnet_imap.txt ]- > | 1 login benutzer password > | 2 select INBOX > | 3 fetch 1:* (RFC822.SIZE) > | 4 logout > `---- ich dachte, das würde mit dem LIST command funktionieren... > #v+ > ~$ cat telnet_imap.txt |nc localhost 143 |awk '/RFC822.SIZE/ > {i+=substr($5,1,index($5, ")")-1);} END {printf "Size: %.2f > kB\n",i/1024;}' > Size: 25186,62 kB > #v- Ausprobieren tu ichs trotzdem, mal sehn was der Server sagt... > Soll das ganze noch rekursiv über alle Folder laufen, sollte ein Genau, das ist mein weiters Problem... Da sind neben der INBOX noch ein INBOX.Spamverdacht und INBOX.Virusverdacht > kleines Perl-script helfen: > > ,---- > | #!/usr/bin/perl > | > | use Net::IMAP::Simple; > | use strict; > | > | my $password="password"; > | my $user="user"; > | my $host="localhost"; > | my $seperator="."; > | > | my $imap = Net::IMAP::Simple->new($host) || die > | $Net::IMAP::Simple::errstr."\n"; > | > | unless($imap->login($user, $password)){ > | die "Login failed: " . $imap->errstr() . "\n"; > | } > | my @mb=$imap->mailboxes; > | my $size = 0; > | > | foreach (@mb){ > | my $num = $imap->select($_); > | # Die Variante $imap->list funktioniert leider nicht, > | # also über alle Nachrichten loopen. > | for (my $i=1; $i <= $num; $i++){ > | $size += $imap->list($i); > | } > | }; > | > | printf "%.2f kB\n", $size/1024; > | > | $imap->quit; > `---- Geht das auch mit TLS/SSL? Das Zertifikat liegt bei mir im ~/.mutt/ Verzeichnis rum. > benötigt aber das Perl-Modul Net::IMAP::Simple. Das passende Paket ist > libnet-imap-simple-perl. Dachte ich mir. > Dann könnte man das Ganze noch per Parameter steuerbar machen und die > Fehlerbehandlung verbessern, das sollte dann nicht mehr allzu > schwierig sein. Ich kann aber kein Perl, auch wenn es logisch aussieht. Warscheinlich würde ich es hinbekommen mit ein paar Wochen herumexperimentieren, nur werde ich derzeit (seit Montag 2008-03-10) massivst mit SPAM zugemüllt und ich kann jetzt definitiv meinen Mailaccount <linux4michelle> nicht mehr per GSM leeren und muß jetzt eben mit diesem script meine Mailboxen alle 3 Stunden einmal per GSM checken, um zu wissen wann ich wieder ins Interet-Cafe muß. Anm.: Letzte Woche habe ich über das Debian-BTS rund 186 MByte Spam bekommen was rund 30.000 Spams entspricht. :-( Könntest Du es mir bitte anpassen das ich es mit: perl-script --user=<user> --pass=<pass> aufrufen kann und es die Ordner imaps://mx.freenet.de/INBOX imaps://mx.freenet.de/INBOX.Spamverdacht imaps://mx.freenet.de/INBOX.Virusverdacht Anm. 1: Ich habe in /usr/bin nach dem "#!/usr/bin/perl" gegreped und ein paar Sachen gefunden, nur geht es noch nicht... :-) Auf alle fälle benötige ich ja "use Getopt::Long;" und sowas wie: ----8<------------------------------------------------------ use Getopt::Long; GetOptions('user|u=s' => \$user, 'pass|p=s' => \$pass); die "Kein Benutzer angegeben\n" unless $user = ""; die "Kein Password angegeben\n" unless $pass = ""; ----8<------------------------------------------------------ Hmmm, haut irgendwie nicht hin... Shit... 'perldoc Getopt::Long' geht nicht! Muß mal ein 'apt-get install perl-doc' machen Thanks, Greetings and nice Day Michelle Konzack -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ ##################### Debian GNU/Linux Consultant ##################### Michelle Konzack Apt. 917 ICQ #328449886 +49/177/9351947 50, rue de Soultz MSN LinuxMichi +33/6/61925193 67100 Strasbourg/France IRC #Debian (irc.icq.com)
Attachment:
signature.pgp
Description: Digital signature