michael: PHP mail()

Hallo,
ich habe eine frage zu dem Befehl mail(); in php.
Folgendes Szenario Ich habe eine IntRAnetseite die mehrere Mailformulare beinhaltet, welche in Flash sind. Jedes formular sendet seinen Inhalt an eine PHP-Datei, welche den Formularinhalt an die im Php-skript definierte Mailadresse sendet. Ergo brauche ich pro Formular eine PHP Datei.

Meine Frage ist nun, ob ich nicht auch in der Mail im POST-Array die Mailadresse mitsenden kann. Der Vorteil wäre, dass ich nur eine PHP-Datei brauche, die die Mails versendet.

Der Grund warum ich frage ist, ich habe Angst, dass Php vielleicht schon anfangen will Text zu versenden,- in diesem Moment die Adresse noch nicht hat- , was ja zu Fehlern führen würde. Oder wartet PHP bis ALLES da ist, und vesendet erst dann?

Langer Rede kurzer Sinn- kann mir jemand sagen, ob das von mir beschriebene Prozedere fehleranfällig ist, dann würde ich es mit mehreren Php Dateien machen, oder habt Ihr "Profis" da keine Bedenken?
Danke für Euren Input
Michael

  1. Hi,

    Folgendes Szenario Ich habe eine IntRAnetseite die mehrere Mailformulare beinhaltet

    "beinhaltet"? Du meinst: enthält. :-)

    welche in Flash sind. Jedes formular sendet seinen Inhalt an eine PHP-Datei, welche den Formularinhalt an die im Php-skript definierte Mailadresse sendet. Ergo brauche ich pro Formular eine PHP Datei.

    Nein. Die bisherige Erklärung rechtfertigt das noch nicht.

    Meine Frage ist nun, ob ich nicht auch in der Mail im POST-Array die Mailadresse mitsenden kann. Der Vorteil wäre, dass ich nur eine PHP-Datei brauche, die die Mails versendet.

    Davon würde ich abraten - dann wäre die Mailadresse für jedermann sichtbar. Naja, zumindest für jeden, der seinem Rechner ein bissl genauer auf die Finger schaut. Besser ist, nur einen Schlüssel oder einen Index anzugeben, der dann eine von mehreren *im PHP-Script* hinterlegten Mailadressen auswählt.

    Der Grund warum ich frage ist, ich habe Angst, dass Php vielleicht schon anfangen will Text zu versenden,- in diesem Moment die Adresse noch nicht hat- , was ja zu Fehlern führen würde. Oder wartet PHP bis ALLES da ist, und vesendet erst dann?

    PHP wird überhaupt erst gestartet, wenn der HTTP-Request vollständig ist.

    So long,
     Martin

    --
    Rizinus hat sich angeblich als sehr gutes Mittel gegen Husten bewährt.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Vielen Dank.

      Michael

    2. Folgendes Szenario Ich habe eine IntRAnetseite die mehrere Mailformulare beinhaltet

      "beinhaltet"? Du meinst: enthält. :-)

      Was hast du begegen beinhalten? ;)

      1. Hallo,

        "beinhaltet"? Du meinst: enthält. :-)
        Was hast du begegen beinhalten? ;)

        nichts - wenn du dein Bein halten willst, dann tu das.
        "begegen" ist wohl Österreichisch? :-P

        Ciao,
         Martin

        --
        Eifersucht ist so alt wie die Menschheit: Als Adam einmal spät heimkam, zählte Eva sofort seine Rippen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. nichts - wenn du dein Bein halten willst, dann tu das.
          "begegen" ist wohl Österreichisch? :-P

          :)

        2. Hi there,

          nichts - wenn du dein Bein halten willst, dann tu das.
          "begegen" ist wohl Österreichisch? :-P

          Tja, das Österreichische ist halt eine Sprache, in der man Sachverhalte, die nicht eindeutig sind, viel präziser beschreiben kann...;)

  2. Hallo,

    Der Grund warum ich frage ist, ich habe Angst, dass Php vielleicht schon anfangen will Text zu versenden,- in diesem Moment die Adresse noch nicht hat- , was ja zu Fehlern führen würde. Oder wartet PHP bis ALLES da ist, und vesendet erst dann?

    »»

    Mach dir da mal keine Sorgen - das wird sicherlich funktionieren ;)

    Erstmal ist es egal, wie viele PHP-Dateien es für wie viele Formulare gibt. Du kannst - völlig unabhängig von der Nennung einer EMpfänger-Adresse als POST Variable - je nach Laune entweder eine Datein/ein Skript machen, oder das ganze auf 100 Dateien, die dann entprechend includet werden aufteilen, oder eben auch für jedes Formular ein eigenständiges Skript machen.

    Da du eine Intranetseite machen willst wäre der Weg über die POST Variable (Mail-Adresse als POST) OK. Bei einer Internetseite würde ich das nicht empfehlen - zumindest nicht, wenn das nicht nochmal überprüft wird, da ansonsten jede x-beliebige Empfängeradresse eingeschleust werden kann.

    Ich würde es folgendermaßen machen:
    1. in den Formularen ein hidden-Feld einbauen, in dem der Typ des Formulars genannt wird (z.B. Kundenanfrage, Interessentenanfrage, Beschwerde). Das kannst du als string oder als Zahl machen - wie du willst.
    2. Eine PHP Skript bauen, wo zunächst der Formulartyp abgefragt wird und je nach Typ dann eine Variable z.b. $send_to = '' angelegt wird. Das lässt sich mittels eines Switch realisieren (IF geht auch, ist aber aufwändiger)
    3. Dann geht das Skript typenunabhängig weiter
    (4. Wie die Dateien dahinter aussehen, musst du selbst entscheiden. Du kannst alle Formulare und die PHP-Auswertung in eine Datei packen, oder es auch aufsplitten)

    Gruß
    Alex