Geachte medetweakers,
Ik ben als uitdaging voor me zelf al een tijdje bezig met een eigen webmailsysteem.
Ik heb het wel zo ver voor elkaar dat ik aan de hand van meegegeven Content-headers plain tekst en HTML tekst mail kan laten weergeven.
Echter het komt wel eens een enkele keer voor dat men echt pure plain tekst email verzend zonder de Content-headers.
Ik weet me geen raad hoe ik dat moet uitlezen en vraga dus om jullie hulp.
Hoe ik het to nu toe doe:
- Ik lees het mailbestand regel voor regel in en iedere regel wordt in de variabele $buffer gezet ($buffer wordt dus steeds overschreven met een nieuwe regel).
- Tevens sla ik het GEHELE bericht (dus ook headers met From en To e.d.) op in een variabele $total.
- Ik tel het aantal Content-haders dat gevonden wordt. Blijft deze op 0 staan dan moet een functie in actie komen dat de plain tekst (dus zonder Content-hader uit het mailbestand haalt.
De enige eigenschap die ik van een dergelijk mailtje bemerk is dat de tekst voorafgegaan wordt door een lege regel en wordt geëindigd met 1 punt op een lege regel.
Dit is een voorbeeld van een dergelijke mail:
Ik heb dus na de check of er geen Content-headers aanwezig zijn dit geschreven:
en dit:
Maar beiden geven geen resultaat (alleen de laatste geeft een paar witregels en punt in het midden van die regels. De eerste geeft waarschuwing:
Ik ben als uitdaging voor me zelf al een tijdje bezig met een eigen webmailsysteem.
Ik heb het wel zo ver voor elkaar dat ik aan de hand van meegegeven Content-headers plain tekst en HTML tekst mail kan laten weergeven.
Echter het komt wel eens een enkele keer voor dat men echt pure plain tekst email verzend zonder de Content-headers.
Ik weet me geen raad hoe ik dat moet uitlezen en vraga dus om jullie hulp.
Hoe ik het to nu toe doe:
- Ik lees het mailbestand regel voor regel in en iedere regel wordt in de variabele $buffer gezet ($buffer wordt dus steeds overschreven met een nieuwe regel).
- Tevens sla ik het GEHELE bericht (dus ook headers met From en To e.d.) op in een variabele $total.
- Ik tel het aantal Content-haders dat gevonden wordt. Blijft deze op 0 staan dan moet een functie in actie komen dat de plain tekst (dus zonder Content-hader uit het mailbestand haalt.
De enige eigenschap die ik van een dergelijk mailtje bemerk is dat de tekst voorafgegaan wordt door een lege regel en wordt geëindigd met 1 punt op een lege regel.
Dit is een voorbeeld van een dergelijke mail:
code:
De regeleindes zijn trouwens \r\n1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Return-path: <afzender@domein.nl> Envelope-to: afzender@domein.nl Delivery-date: Sun, 08 Feb 2004 19:38:44 +0100 Received: from [111.111.111.111] (helo=localhost) by host.domein.nl with smtp (Exim 4.24) id 1AptpC-0003FT-GZ for ontvanger@anderdomein.nl; Sun, 08 Feb 2004 19:38:38 +0100 Message-Id: <E1AptpC-0003FT-GZ@host.domein.nl> From: afzender@domein.nl Bcc: Date: Sun, 08 Feb 2004 19:38:38 +0100 X-Webhostprovider-MailScanner-Information: Please contact the ISP for more information X-Webhostprovider-MailScanner: Found to be clean test . |
Ik heb dus na de check of er geen Content-headers aanwezig zijn dit geschreven:
PHP:
1
2
3
4
5
6
7
8
| <?php if($tekstcount==0){ preg_match("/[:space:]\r\n(.*?)\r\n.\r\n/si",$total,$textarray); echo "<pre>"; print_r($textarray); echo "</pre>"; } ?> |
en dit:
PHP:
1
2
3
4
5
6
7
8
| <?php if($tekstcount==0){ preg_match("/\r\n(.*?)\r\n.\r\n/si",$total,$textarray); echo "<pre>"; print_r($textarray); echo "</pre>"; } ?> |
Maar beiden geven geen resultaat (alleen de laatste geeft een paar witregels en punt in het midden van die regels. De eerste geeft waarschuwing:
Zou iemand me kunnen helpen hoe ik dit emailbestand op de juiste manier dan zou kunnen uitlezen (er vanuit gaande dat het hele emailbestand dus in $total staat)?Warning: Compilation failed: POSIX named classes are supported only within a class at offset 0 at line 207
[ Voor 4% gewijzigd door Joen op 09-02-2004 20:55 ]