Tach!
Was muss ich denn machen damit ich auch den Text, Dateianhang sowie die anderen Felder in der Email sehe und nicht nur im header?
Email versenden ist ein seit langem gelöstes Problem. Dazu gibt es fertige Bibliotheken, man muss das Rad nicht neu erfinden, besonders nicht bei mehrteiligen Mails. Siehe zum Beispiel http://wiki.selfhtml.org/wiki/Artikel:Formmailer-Advanced.
if(isset($_POST['send'])) {
Es gibt Browser, die senden, wenn man nicht den Button klickt sondern das Formular mit Enter absendet, nichts vom Button mit. Der Test kann also fehlschlagen. Besser ist es, die REQUEST_METHOD auszuwerten, oder ob allgemein das $_POST-Array leer ist oder nicht.
$header = "From: ".$\_POST['absender\_mail'];
Spam-Gefahr! Alles was im Header landet, kann weitere Headerzeilen (Cc, Bcc) enthalten, wenn du nicht prüfst, ob Zeilenumbrüche drin sind. Siehe http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel/erkennen_und_behandeln#E-Mail. Der Swiftmailer (im obigen Link) kennt sich damit aus und hat das Problem nicht.
$header .= "nn";
nn oder \n\n?
while(list($formularfeld, $wert) = each($\_POST)) {
while/list/each gibt es zwar immer noch und funktioniert, aber das nutzte man vor vielen Jahren, als es foreach noch nicht gab.
$dateiinhalt = fread(fopen($\_FILES['datei\_upload']['tmp\_name'], "r"), $\_FILES['datei\_upload']['size']);
Auch gibt es seit langem file_get_contents().
dedlfix.