Ankündigung

Einklappen
Keine Ankündigung bisher.

E-Mails mit Daten aus einer mysql-Datenbank

Einklappen

Neue Werbung 2019

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

  • E-Mails mit Daten aus einer mysql-Datenbank

    Hallo Leute,
    ich hab' nen kleines Problem. In meiner Tabelle sind 105 Datensätze und ich möchte an alle eine Rundmail schreiben. Mit meinem bisherigen Code geht das irgendwie nicht. Wenn ich bei SELECT noch zusätzlich WHERE id='65' eingebe, funzt das, aber es wird ja auch nur eine Mail geschickt. Wie löse ich das Problem???

    Code:
    $query = mysql_query("SELECT * FROM `daten` ");
    
    while($row = mysql_fetch_array($query)) {
    
    $email_to = $row[mail];
    $email_from_mail = "ab@sender.de"; 
    $email_from_name = "Webmaster"; 
    $email_betreff = "Infos";
    $email_text = 'Hi ' . $row[vorname] . ',
    
    bla bla bla
    
    Hier der Link: http://www.test.de/update.php?id=' . $row[id] . '&verify=' . $row[user] . '&check=' . $row[passw] . '
    
    bla bla bla
    
    Viele Grüße
    
    
    Die Webmaster';
    
    $header="From:$email_from_name<$email_from_mail>\n";
    $header .= "X-Mailer: PHP/" . phpversion(). "\n";
    
    mail($email_to,$email_betreff,$email_text,$header);}
    Vielen Dank im Voraus!!!

  • #2
    Re: E-Mails mit Daten aus einer mysql-Datenbank

    Zitat von Xardram
    Mit meinem bisherigen Code geht das irgendwie nicht.
    Aha - sehr aussagekräftig.

    Kommentar


    • #3
      Bist du sicher das auch alle Einträge ausgelesen werden? Bist du sicher dass die Email wirklich nicht ankommen vlt. landen sie ja nur im Spamordner. Warum verwendest du nicht den phpmailer der wesentlich ausgereifter ist als ein einfaches mail() Skript.

      Kommentar


      • #4
        @Zergling: Durch die while-Schleife sollte an alle Leute aus der Tabelle eine E-Mail geschickt werden. Es hat aber keiner eine erhalten. Die Mails landeten auch nicht in Spamordnern.

        @RaZoR: Ich habe das jetzt auch mit phpmailer ausprobiert und immer noch ein Problem:
        Das Script läuft z. B. auf www.verteiler.de und ich kann an meine E-Mailadresse: xardram@verteiler.de ohne Probleme eine Mail senden. Wenn ich jedoch eine andere funktionierende Mailadresse von einer anderen Domain nehme z. B. xardram@mails.de bekomme ich von phpmailer die Fehlermeldung: Mailer Error: SMTP Fehler: Die folgenden Empfänger sind nicht korrekt: xardram@mails.de
        (Die hier angegebenen E-Mailadressen gibt's natürlich nicht, ich habe aber 100%tig funktionierende Mailadressen ausprobiert.)

        Kommentar


        • #5
          noch eine kurze Frage: kann das sein, dass phpmailer nur mit dem Absender-SMTP-Postfach, das auch beim sendmail_path angegeben ist, funzt???

          wenn ich den phpmailer in einer while-Schleife habe:

          Code:
          $query = mysql_query("SELECT * FROM `daten` ");
          
          while($row = mysql_fetch_array($query)) {
          
             require("class.phpmailer.php");
          
             $mail = new PHPMailer();
          
             ...
          
          }
          darf / muss man das require in der Schleife lassen???

          Kommentar


          • #6
            Zitat von Xardram
            @Zergling: Durch die while-Schleife sollte an alle Leute aus der Tabelle eine E-Mail geschickt werden. Es hat aber keiner eine erhalten. Die Mails landeten auch nicht in Spamordnern.
            Ja aber das ist doch keine Fehlerbeschreibung. Einfach zu sagen etwas geht nicht - damit können wir nichts anfangen.

            Hast du denn die SMTP-Daten korrekt angegeben? Verwende doch einfach die Option "mail" des PHPMailers, dann wird auch die PHP-Funktion mail() verwendet. Ein Mail-Server muss natürlich installiert sein.

            Das require() gehört nicht in die Schleife. Die Klasse muss nur einmal eingebunden werden.

            Kommentar


            • #7
              @zergling: bei dem alten Code, den ich ganz zu Anfang geprintet hab', kam überhaupt keine Fehlermeldung. Auch wenn ich den mail-Befehl durch eine if-Abfrage hab' prüfen lassen, hat die if-Abfrage ergeben, dass alle Mails geschickt wurden, aber es kam keine einzige Mail an.

              Vielen Dank für Deine Bemühungen!!! Mit phpmailer scheint es jetzt geklappt zu haben.

              Kommentar


              • #8
                was leifert denn mysql_query("SELECT * FROM `daten` ") ?? steht überhaupt ne db verbindung usw... lass dir doch mal while($row = mysql_fetch_array($query)) { echo $row[mail]; } ausgeben ...
                ist mail() bei deinem provider überhaupt erlaupt bzw. aktiviert?

                Kommentar


                • #9
                  Eventuell landen sie im Spamfilter der Mailprovider. Du solltest nicht unbegrenzt Mails raushauen. 30 pro 10 Sekunden sind aus Erfahrung ein Wert, der akzeptiert wird.

                  Das Limit kannst du über SQL festlegen, das Neuladen mit
                  PHP-Code:
                  <?php
                  sleep
                  (10);
                  header(sprintf('Location: %s?offset=%u'$_SERVER['PHP_SELF'], @$_GET['offset'] + 30));
                  exit;
                  ?>

                  Kommentar


                  • #10
                    also ich hatte das ganz anders gemacht:

                    PHP-Code:
                    <?php
                    $database 
                    "rundmail";
                    $sever "db277.server.de"$user "name"$pass "geheim";
                    $verbindung = @mysql_connect($server$user$pass);

                    mysql_select_db($rundmail$verbindung);

                    $sql "SELECT * FROM DATEN";
                    $res mysql_query($sql);

                    while(
                    $data mysql_fetch_assoc($res))
                    {
                    // Versand der E-Mail
                    if(mail($data["mail"],
                       
                    'Infos',
                       
                    'hallo,...
                    Hier Link: http://www.test.de/update.php?id=$data["id"]&verify=$data["user"]&check=$data["passw"] '
                    ,
                    'From: Webmaster'))
                    echo 
                    "E-Mail wurde versendet.";
                    }

                    mysql_close($verbindung);
                    ?>

                    pHyToN

                    Kommentar

                    Lädt...
                    X