Vraagje:
Ik heb een rauw tekstbestand waar meerdere e-mails instaan (met headers en al
). Een voorbeeld kun je zien op http://www.sterrenkunde.nl/jwg/amersfoort/aft-list.mbox.txt
Nu wil ik simpelweg 1 mailtje (dus: header+body) scheiden van de rest. (Bij voorkeur van bovenaf.)
Ik heb dit geprobeerd:
Decodemail.php is eigenlijk gemaakt voor 1 message, maar een hele mbox werkt ook wel, dan paktie de bovenste. In dit script gebeurt het volgende:
Function gifx opent een file in een string.
Als een msg multipart is, drukt ie een voor een alle parts af, en het allerlaatste watie uitpoept is de rest van de hele mbox, dus beginnend met de header van de volgende mail. Precies wat ik nodig heb, zou je zeggen.
Maar wat nou als een keer eens een message niet multipart is?
Dit heb ik geprobeerd
maar waar herken je dan het begin van een header aan?
From: blabla@xxx begintie mee, maar die tekst zou net zogoed in een text/plain email kunnen staan op een nieuwe alinea...
Weet iemand een betere manier?
Ik heb een rauw tekstbestand waar meerdere e-mails instaan (met headers en al
Nu wil ik simpelweg 1 mailtje (dus: header+body) scheiden van de rest. (Bij voorkeur van bovenaf.)
Ik heb dit geprobeerd:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| include("decodemail.php"); $message = new DecodeMessage; $mbox = gifx('aft-list.mbox.txt'); $message->InitMessage($mbox); $ct = $message->ContentType(); $cd = $message->ContentDisposition(); $body = $message->Body(); if (eregi('multipart',$ct['type'])) { // bericht is multipart $b = $ct['boundary']; $parts = explode($b,$body); foreach ($parts as $key=>$value) { $value = trim($value); echo "$key = $value \n\n----\n\n"; } } |
Decodemail.php is eigenlijk gemaakt voor 1 message, maar een hele mbox werkt ook wel, dan paktie de bovenste. In dit script gebeurt het volgende:
Function gifx opent een file in een string.
Als een msg multipart is, drukt ie een voor een alle parts af, en het allerlaatste watie uitpoept is de rest van de hele mbox, dus beginnend met de header van de volgende mail. Precies wat ik nodig heb, zou je zeggen.
Maar wat nou als een keer eens een message niet multipart is?
Dit heb ik geprobeerd
PHP:
1
| $parts = explode("\n\n",$body); |
maar waar herken je dan het begin van een header aan?
From: blabla@xxx begintie mee, maar die tekst zou net zogoed in een text/plain email kunnen staan op een nieuwe alinea...
Weet iemand een betere manier?
[ Voor 8% gewijzigd door pelleke op 11-12-2003 12:18 ]