Matthias: HTML Newsletter durch mail() versenden

Hi,

würde gerne einen Newsletter Verteiler machen, der sich die Empfänger aus der Datenbank holt und eine newsletter.htm file, die man vorher uploaded als email schickt.

Das mit der Db ist geregelt, nur die file wird nicht gesendet. Wie macht mans richtig ?

Vielen Dank im Voraus

Maze

  1. Meine Glaskugel ist im Moment leider kaputt, deshalb empfehle ich die einfach mal den Quellcode auf http://nopaste.rootcenter.org zu Posten und uns den Link zu schreiben.. So wird das Problem ohne Glaskugel kaum zu lösen sein.

    Pascal

    1. Hier die Schleife nach der DB abfrage:

      while ($send = mysql_fetch_array($r)) {
      mail ($send["email"],$betreff,$uploadtext);
      $status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
       }
      }

      $uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.

      1. Mensch, jetzt tu dich halt nich so schwer und gib mal den ganzen Source.
        Das ist immer noch zu wenig, soweit ist alles in Ordnung.
        Vermutlich läuft beim Upload etwas schief, aber wie gesagt.. Glaskugel ist in der Werkstatt.
        Nichts für ungut.

        Pascal

        Hier die Schleife nach der DB abfrage:

        while ($send = mysql_fetch_array($r)) {
        mail ($send["email"],$betreff,$uploadtext);
        $status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
         }
        }

        $uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.

        1. <?php

          $betreff = $_POST["betreff"];
          $upload = $_POST["upload"];
          $dateiname = $HTTP_POST_FILES["upload"]["name"];
          $pfad = $HTTP_POST_FILES["upload"]["tmp_name"];

          if ($betreff =="") {
          $status = "Bitte korrigieren Sie Ihre Eingaben";
          }
          else
          {
          $path = ("uploads/".$dateiname);
          move_uploaded_file($pfad,$path);
          $uploadtext = fopen($path, "w+");

          $verbindung = mysql_connect(localhost, blabla, blabla);
          @mysql_select_db(blabla, $verbindung) or die ("Die Datenbankverbindung konnte nicht hergestellt werden");
          $abonnenten = "SELECT * FROM newsletter";
          $r = mysql_query($abonnenten, $verbindung);

          while ($send = mysql_fetch_array($r)) {
          mail ($send["email"],$betreff,$uploadtext);
          $status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
           }
          }

          jap, irgendwie weiss ich nicht richtig wie ich die Uploadfile in den mail() befehl integrieren soll

          1. Hallo,

            $betreff = $_POST["betreff"];
            $upload = $_POST["upload"];
            $dateiname = $HTTP_POST_FILES["upload"]["name"];
            $pfad = $HTTP_POST_FILES["upload"]["tmp_name"];

            Das ist alles veraltet.
            Neu: $_FILES

            Lies:
            <Wie funktioniert ein Datei-Upload über HTML-Formulare?
            http://www.dclp-faq.de/q/q-formular-upload-php4.html>

            $uploadtext = fopen($path, "w+");

            Damit wird $uploadtext zu einem "Handler", der auf die Datei zeigt.

            Und diesen Zeiger willst Du hier verschicken:

            mail ($send["email"],$betreff,$uploadtext);

            Lies unbedingt mal:
            Wie kann ich eine Datei auslesen?
            http://www.dclp-faq.de/q/q-datei-lesen.html

            Und ueberhaupt: Warum warst Du zu faul, nachzusehen,
            was in der Variable $uploadtext steht, bevor Du hier nachfragst?

            echo "<h2>Uploadtext:</h2>\n";
            echo "<pre>\n";
            echo $uploadtext;
            echo "<pre>\n";

            Gruesse,

            Thomas

            1. Hallo,

              <Wie funktioniert ein Datei-Upload über HTML-Formulare?
              http://www.dclp-faq.de/q/q-formular-upload-php4.html>

              Sorry:
              http://www.dclp-faq.de/q/q-formular-upload-php4.html

              Gruesse,

              Thomas

              1. Jetzt kriege ich den HTML Code der upgeloadenen File gesendet, aber ich will in meinem Outlook ja diesen Code als Website angezeigt bekommen und nicht alleine diesen Code !

                $path = ("uploads/".$dateiname);
                move_uploaded_file($pfad,$path);
                $uploadtext = fopen($path, "r");
                $mail = implode("", file("$path"));

                $verbindung = mysql_connect(localhost, , );
                @mysql_select_db(, $verbindung) or die ("Die Datenbankverbindung konnte nicht hergestellt werden");
                $abonnenten = "SELECT * FROM newsletter";
                $r = mysql_query($abonnenten, $verbindung);

                while ($send = mysql_fetch_array($r)) {
                mail ($send["email"],$betreff,$mail);
                $status = "Der Newsletter wurde erfolgreich an die Adresse <strong>".$send["email"]."</strong> gesendet !";
                 }
                }

                1. habs raus, trotzdem danke

                  1. Hallo,

                    habs raus, trotzdem danke

                    Fürs Archiv könntest du ja schreiben wie.

                    Grüße
                    Jeena Paradies

                    --
                    "Of course it does not work, but look how fast it is!"
      2. hi,

        mail ($send["email"],$betreff,$uploadtext);

        $uploadtext soll dann den Inhalt der htm file sein, die ich zuvor in einem Formular uploade.

        was heisst "soll sein" - steht der richtige inhalt in der variablen, oder nicht?

        des weiteren musst du für eine html-mail natürlich noch die entsprechenden email-header mit der content-type angabe text/html erzeugen - wie, sollte im manual bei der erklärung zum befehl mail() stehen.

        gruss,
        wahsaga