Christian Paul schrieb:
Am Mittwoch, 2. Juni 2010 12:57:09 schrieb Joerg Thuemmler:
Hallo Jörg,
kennt jemand von Euch ein tool, mit dem man sich die Header aller auf einer pop3-Box liegenden Mails auf der commandline so runterladen kann, dass man sie irgendwo reinpipen kann o.ä.?
okay, ich hab sowas mal mit perl gemacht ... ---------------------------------------------------------------------------------------- #!/usr/bin/perl
use Net::POP3; use Digest::MD5; #brauchts nur bei apop
$hostname = "<popservername>"; $username = "<username>"; $password = "password"; $cnt = 1;
# Pop - Server anrufen: $mailserv = new Net::POP3 ( $hostname ); unless ( $mailserv ) { die "Could not connect to Server $hostname; $!\n"; }
$num_msg = $mailserv->login( $username, $password );
# ab hier schreiben wir nach outputfile ...
open(OUTFILE, ">/tmp/outfilename.txt") or die " Datei konnte nicht geoeffnet werden: $!\n";
print OUTFILE "Total $num_msg messages\n";
# Aller Header abrufen:
$headers = $mailserv->list(); foreach $message (keys ( %$headers ) ) {
$size = $mailserv->list( $message );
# wir geben zuerst die groesse aus ... print OUTFILE "$cnt\n"; print OUTFILE $size; print OUTFILE "\n";
# Nur From: und Subject anzeigen:
foreach $line (@$header ) { if ( ( $line =~ /^Subject/ ) || ( $line =~ /^From/ ) ) { print OUTFILE $line; } } print OUTFILE "ENDE\n"; # Leerzeile zwischend den Zeilen
$cnt = $cnt + 1; }
# Vebindung beenden $mailserv->quit(); close OUTFILE
----------------------------------------------------------------------------------------------
sicherlich mit Verbesserungspotential, aber lief bis vor einiger Zeit ohne Probleme...
Hi, Nachdem ich das script getestet habe und es nicht so lief, wie erwartet, ist es mir tatsächlich gelungen, das Problem (welches vielleicht der Mailserver unseres Providers hat) zu lösen. Ich weiß nicht, was standardmäßig ein LIST zurückzuliefern hat, bei uns kommt 1 13114 2 34252 3 334242 ... 12 33445 . ohne header o.ä. Damit ich header sehe, muß ich TOP <msgnr> 0 (0=nur Header oder >0, wenn ich Text will) verwenden. Clever, wie ich bin ;-) , habe ich also nach
# Nur From: und Subject anzeigen:
ein $header = $mailserv->top( $message ); eingefügt. Jetzt funzts... außerdem ist es mir gelungen, mit $hostname = $ARGV[0]; ... den konkret abgefragten account von der cmdline zu übernehmen. Alles in allem ist das doch schon ein großer Schritt auf dem Weg zum Perl-Experten, oder ;-) Thx & cu jth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org