Tom: $_POST als E-Mail

Beitrag lesen

Hallo mdkiller,

Wie schaffe ich es, den Inhalt von $_POST per E-Mail zu verschicken?

<?php
$mailtext .= $_POST;
mail("webmaster@xyz.de", "Betreff", $mailtext, "From: webmaster@xyz.de\nReply-To: $email\nX-Mailer: PHP/" . phpversion());

gehen wir mal davon aus, dass Du den $mailtext-Parameter für Deine Mitteilungen nutzen willst, dann musst Du beachten, dass

  • keine Sonderzeichen und Umlaute erlaubt sind
  • dass die Zeilen nur eine bestimmte Länge haben dürfen
      (bin mir nicht mehr ganz sicher, aber ich glaube es waren 76 Zeichen)

Das Datenarray als Klarschriftmail zu verschicken, ist also eigentlich nicht ohne weiteres möglich.

Du müsstest die Daten also mindestes als quoted_printable codieren. Dafür gibts aber in PHP bis 4.3.1 keine fertige Funktion. Musst Du Dir also selber schreiben.

Na, und dann muss man das der mail()-Funktion auch irgendwie mitteilen, dass sie das jetzt berücksichtigen soll. Genau in diesem Augenblick musst Du Dich mit den MIME-Standards beschäftigen.

Einfache Lösung:
Du bastelst Dir eine mail im quoted printable Standard mit Deinem Mailclient und schickst sie Dir selbst. Dann schaust Du Dir an, was dabei herausgekommen ist.

Nun kannst Du die Mail()-Funktion von PHP als Rumpfprogramm nutzen, und mit Hilfe des Feldes "additional Headers" die Daten an die Funktion übergeben.

bool mail ( string to, string subject, string message [, string additional_headers])

Den Parameter "message" lässt Du dann LEER.

Wie man ein Datenarray rekursiv auflöst und als Strings darstellt, ist hier im Forum auch oft genug beschrieben worden.

Ich gebe zu, ich habe, um die ganze Aufgabe zu lösen und ALLE offenen Fragen auch über die RFCs abzusichern, mal eine ganze Woche benötigt.
Ich wünsche Dir viel Erfolg.

Grüße

Tom