Ahoj!
$Mailbetreff .= $_REQUEST['Betreff'];
$Header = "From: ".$_REQUEST['Email'];
Diese beiden Zeilen sind gefährlich. Hier werden Benutzereingaben ungeprüft in den eMail-Header geschrieben. Damit kann der Benutzer z.B. beliebig viele eMail-Adressen als CC eintragen und auf diese Weise Spam versenden.
Du musst unbedingt unerlaubte Zeichen herausfiltern, mindestens den Zeilenumbruch!
Das ist genau das Skript was ich gesucht habe, allerdings möchte ich den Anhang noch ausbauen (d.h. statt einer Anhangsdatei 3-5 Dateien).
Heißt "3-5 Dateien", daß Du die genaue Zahl noch festlegst, sie dann aber konstant bleibt, oder daß sie variabel sein soll? Wenn letzteres: Wovon hängt sie ab?
Ich hoffe jemand weiß was ich ergänzen muss, damit mehrere Anhänge gesendet werden können.
So ganz genau weiß ich es jetzt aus dem Stegreif offen gestanden auch nicht. Im Prinzip mußt Du aber diesen Teil:
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mehrfach wiederholen, mit verschiedenen Array-Keys (also z.B. "Anhang1", "Anhang2" usw. statt "Anhang"). Das geht recht einfach in einer Schleife, und eine variable Anzahl ist dann auch kein Problem.
Entsprechend brauchst Du im HTML mehrere solche Inputs:
<input name="Anhang1" size="20" type="file">
<input name="Anhang2" size="20" type="file">
...
P.S.: Gibt es in diesem Skript auch eine Volumenbegrenzung?
Ich sehe keine. Das ist gegebenenfalls auch noch eine Sicherheitslücke, falls Dein Server sich nach Belieben vollstopfen läßt.
Viele Grüße vom Længlich