mdkiller: $_POST als E-Mail

Hallo Forum!

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());
?>

schickt mir das tolle Wort ARRAY zu...

Ich hätte aber gerne den kompletten Inhalt aller per Post übergebenen Werte.

Danke für Eure Antworten und ein schönes Ende

mdkiller

  1. Nabend,

    schickt mir das tolle Wort ARRAY zu...

    Nichts anderes ist $_POST.

    Ich hätte aber gerne den kompletten Inhalt aller per Post übergebenen Werte.

    Dann baue dir aus dem Array einen String. implode() dürfte dir helfen, ggf. auch eine forerach-Schleife.

    Bis denne,

    1. Hallo!

      Dann baue dir aus dem Array einen String. implode() dürfte dir helfen, ggf. auch eine forerach-Schleife.

      Ich hätte das am liebsten wie mit print_r($_POST); nämlich dass gleich die Veriablenbezeichnungen mitgeliefert würden. implode schickt mir nur die reinen Daten.

      Gruß

      mdkiller

      1. Hallo.

        Schaut immer zuerst in die dclp-faq. Sehr viele Probleme lösen sich dann von selbst.

        6.6. Wie schreibe ich ein Script, das beliebige Parameter verarbeitet?
        http://www.dclp-faq.de/q/q-variable-parameter.html

        mfg Johannes

      2. Nabend,

        Ich hätte das am liebsten wie mit print_r($_POST); nämlich dass gleich die Veriablenbezeichnungen mitgeliefert würden. implode schickt mir nur die reinen Daten.

        Gut, und warum verwendest du dann nicht einfach print_r()? Ich tippe, du hast das Manual (wenn dann) nur in Deutsch gelesen. Werfe _immer_ auch einen Blick in das bessere, englische: http://de2.php.net/manual/en/function.print-r.php

        Bis denne,

        1. Hi!

          Gut, und warum verwendest du dann nicht einfach print_r()? Ich tippe, du hast das Manual (wenn dann) nur in Deutsch gelesen. Werfe _immer_ auch einen Blick in das bessere, englische: http://de2.php.net/manual/en/function.print-r.php

          Ich habe wirklich nur ins deutsche reingeschaut. Hatte die Hoffnung, es wäre eine 1:1 Übersetzung, aber da hab ich mich dann wohl geirrt...

          Mit $mailtext .= print_r($_POST, true); funktioniert das ganze dann.

          Danke schön!

          Gelobe Besserung!

          Bis denne,

          Ciao

          mdkiller

          1. Hallo,

            Mit $mailtext .= print_r($_POST, true); funktioniert das ganze dann.

            Das ist aber nicht zulässig, da in $_POST alles drinstehen darf, auch Umlaute, Tags, Zeilenumbrüche etc. Das muss man vorher "kastrieren".

            Dank Dir habe ich ja nurn gerade dazugelernt, dass print_r(....,true)
            die ausgabe auf das Funktionsergebnis umlenkt.

            Da müsstest Du jetzt nur noch die quoted-Printable-Umwandlung und die Zeilenlänge (chunk_split()) beachten.

            ...

            Grüße

            Tom

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

    schickt mir das tolle Wort ARRAY zu...

    Versuche es mal mit $GET_POST[deine variable] statt $_POST

    Gruß

    Stephan

    1. hi,

      Versuche es mal mit $GET_POST[deine variable] statt $_POST

      verfolgst du mir der verbreitung dieses unsinns irgendein bestimmtes ziel?

      gruss,
      wahsaga

      1. Ist das nicht richtig??

        1. hi,

          Ist das nicht richtig??

          es gibt $_GET und $_POST, je nach im formular verwendeter methode.

          aber $GET_POST existiert m.w. nicht (es sei denn, du legst es selber an).

          gruss,
          wahsaga

  3. 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

  4. Hi,

    noch ein Thread-Tipp: [pref:t=62099&m=350667]

    Grüße

    Tom