online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon micha182 vom 18.04.2020, 15:38 Options

Mail mit Anhang, PHP5

Hallo zusammen,

ein paar Stündchen schon an einem Script für ein webformular, mit dem man emails über ein Webformular versenden kann, inkl. Anhang.
Viele Lösungen habe ich schon gefunden, einige funktionieren auch, aber die Anhänge sind dann meist nur 300 Byte groß. Hier mal mein Code

<?php
$file = $_FILES['attachment']['name'];
$file_name = $_FILES['attachment']['name'];
$from = "email@adresse.de";
$to = "...";
$message = "Hier steht dann die Nachricht der Mail";
$boundary = strtoupper(md5(uniqid(time())));
$mail_header = "From:Test <$from>\n";
$mail_header .= "MIME-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";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
$file_content = fread(fopen($file,"r"),filesize($file));
$file_content = chunk_split(base64_encode($file_content));
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/octetstream; name=\"$file_name\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
$mail_header .= "\n\n$file_content";
$mail_header .= "\n--$boundary--";
mail($to,"Betreff",$message,$mail_header);
?>

Könnte mir vielleicht jemand einen Tip geben, wieso das nicht funktioniert?

Freundliche Grüße, Micha


Antwort schreiben

Antwort 1 von DeluxeStyle vom 18.04.2020, 15:46 Options

wie sieht den dein Formular aus?
Hast du im Form Tag auch
enctype="multipart/form-data"
stehen?

Antwort 2 von micha182 vom 18.04.2020, 16:58 Options

Das ganze Formular zu posten wäre etwas lang, aber ja, enctype habe ich entsprechend drinstehen.

Muss man php vielleicht igrnediwe die Größe der Datei vorher mitteilen?

Unter php4 ist das alles ja viel detailierter als unter php5...

Antwort 3 von Supermax vom 18.04.2020, 17:11 Options

Alles ab
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
gehört in den Message-Body, nicht in den Header; auch wenn vermutlich alles nach dem doppelten Zeilenvorschub ohnehin als Message Body behandelt werden dürfte.

Ähnliche Themen

Emailanhang wird nicht empfangen
iimehl  18.03.2007 - 117 Hits - 1 Antwort

anhang bei mail öffnen
siwoe  13.12.2007 - 196 Hits - 2 Antworten

Outlook
Feuerkopf  19.02.2008 - 60 Hits - 2 Antworten

wichtiger hotmail anhang verschwunden, was tun??
echostar87  08.03.2008 - 72 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Sun Jan 25 18:15:21 2026