MAIL MBOX-Format
Tom
- programmiertechnik
Hello,
Wenn man eMails im MBOX-Format ablegt, woran erkennt man dann, dass eine neue email anfängt?
Die Zeile "From :..." könnte schließlich auch irgendwo mitten im Body der Mail nach zwei Leerzeilen stehen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Tach,
Wenn man eMails im MBOX-Format ablegt, woran erkennt man dann, dass eine neue email anfängt?
das ist einfach an den 5 Zeichen "From ".
Die Zeile "From :..." könnte schließlich auch irgendwo mitten im Body der Mail nach zwei Leerzeilen stehen.
deswegen werden sie beim abspeichern transformiert, wie das passiert, hängt davon ab: "mbox" is actually a family of several mutually incompatible mailbox formats.
mfg
Woodfighter
Tach,
Dir ebenso.
Wenn man eMails im MBOX-Format ablegt, woran erkennt man dann, dass eine neue email anfängt?
das ist einfach an den 5 Zeichen "From ".
es sind ab der zweiten Message fortfolgend sogar sieben Zeichen (0x0A 0x0A 0x46 0x72 0x6F 0x6D 0x20). Das geht aus der Seite 8 RFC 4155 hervor, die den MIME-Type einer solchen Datei beschreibt.
Gruß aus Berlin!
eddi
Wenn man eMails im MBOX-Format ablegt, woran erkennt man dann, dass eine neue email anfängt?
Die Zeile "From :..." könnte schließlich auch irgendwo mitten im Body der Mail nach zwei Leerzeilen stehen.
Ich weiss nicht wie das Format von Thunderbird heisst
aber dort wird jede Message mit der Datumsangabe begonnen:
From - Fri Jan 05 23:15:06 2007
mindestens zwei Leerzeilen zwischen den Messages.
Hello,
ich bräuchte einen Regulären Ausdruck , um dieses Format zu erkennen
From Gooldogds@artasia.co.kr Wed Apr 04 00:24:53 2007
"/^From *@* w{3} w{3} d{2} d{2}:d{2}:d{2} d{4}$i/"
------------------
Jetzt hatte ich es schon alles geschrieben, und dann leider die Escape-Taste gedrückt. Da war die Textarea wieder zurückgesetzt :-((
Ist das schon die richtige Richtung, oder wie muss das Ding aussehen.
Was ist mit "ungreedy"? Brauch ich das?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
Hello,
ich bräuchte einen Regulären Ausdruck , um dieses Format zu erkennen
From Gooldogds@artasia.co.kr Wed Apr 04 00:24:53 2007
"/^From *@* w{3} w{3} d{2} d{2}:d{2}:d{2} d{4}$i/"
------------------
Ich habe mir jetzt dieses Pattren gebastelt, bin aber nicht sicher, ob es richtig ist.
$pattern = "=^From (.+) (\w{3}) (\w{3}) (\d{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$=iU";
Die Zeilen der Datei werden einzeln damit geprüft.
Es funktioniert, aber das hat ja nicht unbedingt was zu sagen ...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
ich bräuchte einen Regulären Ausdruck , um dieses Format zu erkennen
From Gooldogds@artasia.co.kr Wed Apr 04 00:24:53 2007
"/^From *@* w{3} w{3} d{2} d{2}:d{2}:d{2} d{4}$i/"
------------------Ich habe mir jetzt dieses Pattren gebastelt, bin aber nicht sicher, ob es richtig ist.
$pattern = "=^From (.+) (\w{3}) (\w{3}) (\d{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$=iU";
Die Zeilen der Datei werden einzeln damit geprüft.
Es funktioniert, aber das hat ja nicht unbedingt was zu sagen ...
Wenn du zeilenweise einliest
a) welche Garantie hast du, dass eine erste Messag-zeile immer in deinem Format vorliegt? Sprich wie konsistent setzt das Mailprogramm, das diese Einträge schreibt, das Format MBOX um?
Da eine Emailadresse ein ziemlich unberechenbares Format hat, würde ich das so _in Perl_ aufbauen:
(Bin in PHP gänzlich unbewandert).
Es handelt sich um externen Input, Deshalb solltest du alle Felder auf Länge überprüfen.
my $from_format = qr/[A_Za-z0-9.:"'()-]{1,100}@[\w.]{1,100}.[a-z]{2,4}/;
^^^^
was hier noch wohl hinzugehört???
oder wenn du sicher bist, dass dein Data nicht kompromitiert sein kann:
my $from_format = qr/\S+/; # None-Whitespace
my ($from, $wday, $month, $day, $time, $year ) =
( $line =~ /^
From \s+ # dein Keywort
($from_format) \s+ # from
(\w{3}) \s+ # wday
(\w{3}) \s+ # month
(\d{1,2}) \s+ # day
(\d{2}:\d{2}:\d{2}) \s+ # time
(\d{2,4}) \s+ # year
$/x );
From Gooldogds@artasia.co.kr Wed Apr 04 00:24:53 2007
mfg Beat