Hallo Leute,
ich habe eine Fileupload-Funktion geschrieben, die zum Einsatz kommt, wenn User eine Community ein Foto hochladen.
Da die Fotos direkt verfügbar sind (Spielerfotos bei einem Amateurfußballportal), sollen die Admins wenigstens per Mail über neu hochgeladene Fotos informiert werden.
Ich stand nun vor der Wahl, ob ich einen Link auf das neue Foto generiere, oder es als Attachment direkt in der mail anzeigen lasse.
Ich fand die Lösung mit dem Attachment sinnvoller.
Als ich in der Online-Doku der mail()-Funktion bei php.net nicht weiterkam - Mir war lediglich klar, dass das Attachment wohl in den Mailheader gehört, nicht aber, WIE ...
OK, also Gegoogelt und damit dieses Forum gefunden.
Im Trash-Archiv fand ich auch eine Komplett-Lösung von 'Koala', die ich entsprechend meiner Anforderungen, adaptiert habe.
Leider treten hierbei aber Fehler auf:
Die Mail wird zwar ordentlich versendet, aber leider ohne Attachment, statt dessen steht der Mail-Header im Klartext in der Mail.
Hier nun meine PHP-Funktion und anschließend die daraus generierte Mail:
Der Übergabe-Parameter ist der temporäre Dateiname des Uploadformulars:
Wäre wirklich nett, wenn mir jemand da mal weiterhelfen könnte.
Hier nun die Funktion:
Und hier die Mail:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=8B72B7B5636E47E947331346AC56D721
This is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format
--8B72B7B5636E47E947331346AC56D721
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
--8B72B7B5636E47E947331346AC56D721
Content-Type: image/jpeg; name="/home/htdocs/web0/phptmp/phpQjCcm6"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="/home/htdocs/web0/phptmp/phpQjCcm6"
L2hvbWUvaHRkb2NzL3dlYjAvcGhwdG1wL3BocFFqQ2NtNg==
--8B72B7B5636E47E947331346AC56D721--
ich habe eine Fileupload-Funktion geschrieben, die zum Einsatz kommt, wenn User eine Community ein Foto hochladen.
Da die Fotos direkt verfügbar sind (Spielerfotos bei einem Amateurfußballportal), sollen die Admins wenigstens per Mail über neu hochgeladene Fotos informiert werden.
Ich stand nun vor der Wahl, ob ich einen Link auf das neue Foto generiere, oder es als Attachment direkt in der mail anzeigen lasse.
Ich fand die Lösung mit dem Attachment sinnvoller.
Als ich in der Online-Doku der mail()-Funktion bei php.net nicht weiterkam - Mir war lediglich klar, dass das Attachment wohl in den Mailheader gehört, nicht aber, WIE ...
OK, also Gegoogelt und damit dieses Forum gefunden.
Im Trash-Archiv fand ich auch eine Komplett-Lösung von 'Koala', die ich entsprechend meiner Anforderungen, adaptiert habe.
Leider treten hierbei aber Fehler auf:
Die Mail wird zwar ordentlich versendet, aber leider ohne Attachment, statt dessen steht der Mail-Header im Klartext in der Mail.
Hier nun meine PHP-Funktion und anschließend die daraus generierte Mail:
Der Übergabe-Parameter ist der temporäre Dateiname des Uploadformulars:
Wäre wirklich nett, wenn mir jemand da mal weiterhelfen könnte.
PHP-Code:
:
$source = $_FILES['foto']['tmp_name'];
@mail_foto($source); // @ da die Mail versendet wird
:
PHP-Code:
function mail_foto($file)
{
$boundary = strtoupper(md5(uniqid(time())));
$datei_content = chunk_split(base64_encode($file));
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
// Hier faengt der normale Mail-Text an
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$mail_content";
// Hier faengt der Datei-Anhang an
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: image/jpeg; name=\"$file\"";
// Codierung fuer den MIME-Typ des Anhangs
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"$file\"";
$mail_header .= "\n\n$datei_content";
// Gibt das Ende der eMail aus
$mail_header .= "\n--$boundary--";
@mail("check@mail.de","Check this picture please !","",$mail_header);
}
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=8B72B7B5636E47E947331346AC56D721
This is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format
--8B72B7B5636E47E947331346AC56D721
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
--8B72B7B5636E47E947331346AC56D721
Content-Type: image/jpeg; name="/home/htdocs/web0/phptmp/phpQjCcm6"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="/home/htdocs/web0/phptmp/phpQjCcm6"
L2hvbWUvaHRkb2NzL3dlYjAvcGhwdG1wL3BocFFqQ2NtNg==
--8B72B7B5636E47E947331346AC56D721--
Kommentar