@mail() - HTML Mail

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • @mail() - HTML Mail

    Ich möchte eine HTML-Mail versenden, allerdings wir mir der
    Inhalt von email_content.php angezeigt, anstatt $content
    in die Mail zu packen.
    Meine Frage: Wieso wird $content direkt eingebunden?
    Ich rufe es doch erst in der Mail auf.

    PHP-Code:
                 $content = include("email_content.php");

                 
    $header  "MIME-Version: 1.0\n";
                 
    $header .= "Content-type: text/html; charset=iso-8859-1\n";
                 
    $header .= "From: $sender\n";
                 
    $header .= "Reply-To: $sender\n";
                 
    $header .= "Mailer: PHP/".phpversion()."\n";

                 @
    mail($email,"$subject",$content,$header); 

  • #2
    Wieso wird $content direkt eingebunden?
    weil etwas anderes zu erwarten falsch ist -

    such dir mal was passendes aus: http://de3.php.net/manual/de/ref.filesystem.php

    Kommentar


    • #3
      Sorry, aber

      readfile($content) oder require(...php) funktioniert auch nicht...

      Kommentar


      • #4
        ist auch beides falsch.

        du sollst eine funktion finden, die den inhalt der datei nicht AUSGIBT, sondern zurückliefert, sodass du diesen wert einer anderen variable zuordnen kannst.

        Kommentar


        • #5
          damit du nicht komplett verhungerst hier:
          guck dir mal
          file(); und implode(); an.

          aber wie du das kombinierst suchst dir jetzt mal schön selber raus
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            PHP-Code:
            ob_start();                       // start output buffer
            include("email_content.php");      // füllen puffer
            $nachricht .= ob_get_contents(); // lesen  puffer 
            ob_end_clean();                // löschen puffer 

            Kommentar


            • #7
              Danke, habe jetzt eine andere Lösung gefunden:

              Allerdings habe ich nun das Problem, dass wenn ich eine
              Datei include, der Inhalt nicht so ausgegeben wird wie ich möchte
              in der eMail:

              PHP-Code:
                          $content file_get_contents("email.php");

                          
              $header  "MIME-Version: 1.0\n";
                          
              $header .= "Content-type: text/html; charset=iso-8859-1\n";
                          
              $header .= "From: $sender\n";
                          
              $header .= "Reply-To: $sender\n";
                          
              $header .= "Mailer: PHP/".phpversion()."\n";

                          @
              mail($email,"Testmail",$content,$header);

              // Ausgabe:

              Name$name
              Hobby
              $hobby

              website url
              $url

              --
              Robot-Mailer 
              Wie bekomme ich es nun hin, dass $name, $hobby und $url
              deren eigentliche Werte aus dem $_POST[] kommen,
              angezeigt werden?

              Kommentar


              • #8
                str_replace()

                Kommentar


                • #9
                  PHP-Code:

                  $content 
                  file_get_contents("email.php");
                  $content str_replace ("$name""Mr Testmann""$content");
                  $content str_replace ("$hobby""PHP Fehler machen""$content");

                  // Die Ausagbe sieht leider nachwievor so aus:

                  Name$name
                  Hobby
                  $hobby 
                  Ich verstehe das nicht, weil ich str_replace aus dem Manual
                  1:1 übernommen habe:
                  mixed str_replace ( mixed search, mixed replace, mixed subject )

                  Kommentar


                  • #10
                    '$name' statt "$name"

                    Kommentar


                    • #11
                      Danke, funktioniert nun hervorragend

                      Kommentar


                      • #12
                        Ich habe mich leider zu früh gefreut...

                        Anstatt jetzt $hobby = Schwimmen und $hobby2 = Tennis
                        bekomme ich nun die Ausgabe $hobby = Schwimmen und
                        $hobby2 = Schwimmen2. Wieso und wie kann ich das ändern?

                        Kommentar


                        • #13
                          Die Variablen werden nicht gelesen sondern nur ein String wird ersetzt..


                          Text davor:

                          Hallo, dein Hobby ist $hobby. Als zweites Hobby hast du $hobby2.



                          Du ersetzt $hobby durch Schwimmen:

                          Hallo, dein Hobby ist Schwimmen. Als zweites Hobby hast du Schwimmen2.


                          Das Problem entsteht da du einfach nur alle $hobby s durch Schwimmen ersetzt. Ob das ganze in einem anderen Wort (hier $hobby2) ist oder nicht ist dabei egal..

                          Du musst also zuerst den "speziellsten" String ersetzen.


                          Floriam
                          PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                          Kommentar


                          • #14
                            Du musst also zuerst den "speziellsten" String ersetzen.
                            Diesen Satz verstehe ich nicht in PHP umzuwandeln...
                            Wie meinst du das?

                            Kommentar


                            • #15
                              oder einfach php-fremde template-platzhalter verwenden:

                              statt $name z.b. sowas wie
                              Code:
                              #NAME#

                              Kommentar

                              Lädt...
                              X