PHP imap-Funktion / Dateianhänge filtern & speichern ?
Jörg
- php
0 wahsaga
Hallo,
ich benutze derzeit folgenden Code um mein pop3-Postfach mittels
PHP auszulesen:
$mbox = imap_open ("{".$pop3_server.":993/ssl/novalidate-cert}INBOX",$postfach,$passwort);
$headers = imap_headers ($mbox);
$max = count($headers);
$newinbox = $inbox + $max;
for ($k = 0; $k < $max; $k++)
{
if ($_POST['checkbox'][$k+1] == "yes")
{
imap_delete ($mbox, $k+1);
}
}
imap_expunge ($mbox);
$max = $max - count($_POST['checkbox']);
for ($i = $max; $i > 0; $i--)
{
$header = imap_header ($mbox,$i);
$from = $header->from;
$empfaeng = $header->toaddress;
$email = $from[0]->mailbox."@".$from[0]->host;
$subject = $header->subject;
$struktur = imap_fetchstructure ($mbox,$i);
$kodierung = $struktur->encoding;
$date = $header->date;
$udate = $header->udate;
$date = split(" ",$date);
imap_delete ($mbox, $i);
$body = imap_body ($mbox,$i);
if ($kodierung == 4)
{
$body = htmlentities(quoted_printable_decode($body), ENT_QUOTES);
}
elseif ($kodierung == 3)
{
$body = htmlentities(base64_decode($body), ENT_QUOTES);
}
else
{
$body = htmlentities($body, ENT_QUOTES);
}
$body = ereg_replace ("\n", "<br>", $body);
Soweit funktioniert auch dieser Code (stammt nicht von mir!) und ich verstehe diesen im großem und ganzen auch...
Nun möchte ich aber neben der eigentlichen E-Mail auch eventuell vorhandene Anhänge verarbeiten, d.h. den obigen Code verwende ich zum einlesen der Mail in meine DB, jetzt frage ich mich allerdings, wie das mit den (ggf. vorhandenen) Anhängen funktioniert da ich diese als Originaldatei auf meiner WSP speichern will.
Bislang werden Anhänge als "Zeichenbrei" in der Mail dargestellt.
Ich habe mir bereits die imap-Beschreibung durchgelesen, aber wenn ich ehrlich sein soll nicht wirklich viel davon verstanden.
Da ich aber auch etwas lernen will, will ich nicht einfach eine fertige Klasse verwenden.
Gruss
Jörg
hi,
Nun möchte ich aber neben der eigentlichen E-Mail auch eventuell vorhandene Anhänge verarbeiten, d.h. den obigen Code verwende ich zum einlesen der Mail in meine DB, jetzt frage ich mich allerdings, wie das mit den (ggf. vorhandenen) Anhängen funktioniert da ich diese als Originaldatei auf meiner WSP speichern will.
Bislang werden Anhänge als "Zeichenbrei" in der Mail dargestellt.
E-Mails mit Anhang sind Multipart-Messages, die mehrere Mail Bodies enthalten, durch sog. Boundaries von einander abgegrenzt.
Und bei dem "Zeichenbrei" dürfte es sich in aller Regel um die Base64-kodierten Binärdaten der angehängten Datei handeln.
Ich habe mir bereits die imap-Beschreibung durchgelesen, aber wenn ich ehrlich sein soll nicht wirklich viel davon verstanden.
Die Wikipedia bspw. liefert weitere Ansatzpunkte, verlinkt auf relevante RFCs, etc.
http://de.wikipedia.org/wiki/E-Mail
http://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions
Da ich aber auch etwas lernen will, will ich nicht einfach eine fertige Klasse verwenden.
Auch bei der Analyse vorliegenden Codes kann man ja lernen. (Sofern dieser "was taugt" - beim Einstieg sicher nicht einfach zu beurteilen, deshalb würde ich mich an "verbreiteten" Code halten, bspw. etwas aus dem PEAR).
gruß,
wahsaga