Email mit Anhang versenden
Verschicken einer Email mit Anhang. Die Datei wird durch ein HTML-Formular übertragen.
Der folgende Quelltext ist zum Versenden einer Email mit oder ohne Anhang mit Hilfe der Sprache PHP.
<?php
//
// Email versenden
//
$empfaenger = "name@domain.com"; // Empfänger-Adresse
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$absender = $_POST['absender'];
$nachricht = $_POST['nachricht'];
$datei_name = $HTTP_POST_FILES['unterlagen']['name'];
$datei_size = $HTTP_POST_FILES['unterlagen']['size'];
$datei_type = $HTTP_POST_FILES['unterlagen']['type'];
$datei_tmp_name = $HTTP_POST_FILES['unterlagen']['tmp_name'];
if($nachname!="" && $absender!="" && $nachricht!="") {
if($datei_name!="") { // Email mit Anhang
$grenze = md5(uniqid(time())); // Grenze für Nachricht und Datei
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $absender\n";
$headers .= "Content-Type: multipart/mixed;\n\tboundary=$grenze\n";
$message .= "\n--$grenze\n";
$message .= "Content-transfer-encoding: 8bit\r\n";
$message .= "Content-type: text/plain\n\n";
$message .= $nachricht."\n\n";
$message .= "\n--$grenze\n";
$message .= "Content-Type: application/octet-stream;\n\tname=$datei_name\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment;\n\tfilename=$datei_name\n\n";
$fp = fopen("$datei_tmp_name", "rb");
$inhalt_der_datei = fread($fp, $datei_size);
fclose($fp);
$inhalt_der_datei = chunk_split(base64_encode($inhalt_der_datei));
$message .= $inhalt_der_datei."\n\n";
$message .= "--$grenze--\r\n\r\n";
mail($empfaenger, 'Emailtitel', $message, $headers);
}
else { // Normale Email ohne Anhang
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $absender\n";
mail($empfaenger, 'Emailtitel', $nachricht, $headers);
}
header("Location: danke.php"); // Umleitung auf Dankesseite
exit;
}
?>
Nun fehlt noch das Formular:
<form action="formmail.php" method="post" enctype="multipart/form-data">
Vorname: <input type="text" name="vorname" /><br />
Nachname: <input type="text" name="nachname" /><br />
Absender-Email: <input type="text" name="absender" /><br />
Nachricht: <textarea name="nachricht" rows="4" cols="30"></textarea><br />
Unterlagen: <input type="file" name="unterlagen" /><br />
<input type="submit" value="Abschicken" />
</form>