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>

Wenn Sie meine Arbeit unterstützen wollen, dürfen Sie mich gerne mit Fehlerbereinigungen oder auch Spenden erfreuen.

Vielen Dank.

2003 - 2008 | Renegat