Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
parse-mail.pl
#!/usr/local/bin/perl
# parse-mail.pl -- Ganzer Mail-Header mit einem Schlag lesen
# und getrennt vom Mail-Body bearbeiten
# "MH-Trick": Verwendet Absatz-Einlesemodus.
use English; # fuer $RS
$ors = $RS; # Alten Record-Separator merken.
$RS = ''; # Records sind durch eine leere Zeile
# voneinander getrennt.
$header = <STDIN>; # lies einen Record ein.
# In Wirklichkeit wird der
# gesamte Mail-Header auf
# einen Schlag eingelesen.
# Header parsen
@lines = split(/\n/, $header);
foreach $line (@lines) {
if ($line =~ /(.*?):\s(.*)/) {
$MH{$1} = $2; # Funktioniert nicht bei Headern,
# die mehrfach vorkommen koennen,
# wie z.B. Received:
}
}
# Fuege eigene Header-Zeilen hinzu, bzw.
# veraendere Header-Zeilen.
$MH{"X-Parsed"} = "MH-Trick Programm";
$MH{"X-Uppercased"} = "Yes";
$MH{"Subject"} =~ s/\S/X/g; # Subject-Zeile ausXen.
# Header sortiert ausgeben:
foreach $key (sort keys %MH) {
print "$key: $MH{$key}\n";
}
print "\n"; # Mail-Header ist zu Ende.
# Restliche Mail unveraendert ausgeben:
$RS = $ors; # Verwende wieder den alten
# normalen Record-Separator.
while (<STDIN>) { print; } # Den Rest einfach umkopieren.
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:56:02 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|