Email parsen
-
Ja ich wollt mal fragen wie ich am besten ne eMail parsen kann?
Sie sieht halt so aus:+OK 1350 octets Return-Path: Received: ****************** by web11.hosthome.de (8.12.5/8.12.5) with SMTP id h32JQjFs024222 for ; Wed, 2 Apr 2003 21:26:45 +0200 Received: (qmail 17386 invoked by uid 0); 2 Apr 2003 19:26:31 -0000 Date: Wed, 2 Apr 2003 21:26:31 +0200 (MEST) From: paranoiac@gmx.net To: admin@brain-death.net MIME-Version: 1.0 Subject: TEST X-Priority: 3 (Normal) X-Authenticated-Sender: #0013134540@gmx.net X-Authenticated-IP: [80.133.198.49] Message-ID: <12140.1049311591@www16.gmx.net> X-Mailer: WWW-Mail 1.6 (Global Message Exchange) X-Flags: 0001 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Status: O
So jetzt will ich halt wissen von wem, wohin und welches Datum, etc
Habs schon mal probiert, aber war recht umständlich. Wie macht man das normal, wenn man ein Emailinterface programmiert?
danke!
cu para
-
MIME Header ist easy:
alles bis zur ersten newline ist header.
bei multipart wird im header ein boundary angegeben, dieses gibt an, womit die einzelnen teile getrennt werden
boundary,$body);die header sind auch einfach auszulesen, immer folgendes format:
name: value\n
sollte die nächste zeile mit einem tab (vielleicht reichen auch spaces) beginnen, dann gehört das noch zum obenstehenden feld.
mit regexps ists easy!
achtung bei mail adresse, die können so aussehen:
foo@bar.com
oder auch so
Maxi Huber foo@bar.com
mehrere email adresse sind mit , getrennt.multipart ist etwas komplizierter, denn jeder part hat seinen eigenen header.
da steht dann drinnen wie er codiert ist (meistens base64 oder quoted_printable - für beides gibt es eine php funktion)