Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Erinnerung per E-Mail an mehrere Empfänger versenden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Erinnerung per E-Mail an mehrere Empfänger versenden

    Hallo Miteinander,

    Ich arbeite derzeit am Ausbau eines Rapportsystems. Mein nächstes Ziel ist es, dass man sich Erinnerungen per E-Mail zukommen lassen kann.

    Ein Cron-Job, welcher täglich um 6 Uhr gestartet wird, wird dann an die in der SQL DB vorhandenen Adressen eine Mail versenden - Pro Empfänger mit anderem Inhalt. Und genau da scheitere ich zur Zeit...

    Tipps zum E-Mail Versand mit gleichem Inhalt an mehrere Empfänger finde ich hier im Forum oder bei Google haufenweise - aber leider nicht zu meinem Problem.

    Ausgangslage:
    Ich habe eine MSSQL Tabelle "rapporte_daily_email_reminder" in der sich folgende Spalten befinden: email, anrede, user_name, rapport_id

    Das PHP Script soll nun täglich an die in der Tabelle vorhandenen Einträge eine Mail senden - z.B. "Guten Tag Herr Müller, Ihre Rapport ID 99 muss heute bearbeitet werden".

    Mein jetziges PHP Script versendet zwar allen Empfängern eine Mail, wiederholt aber bei jedem Mail die vorherigen Datensätze...

    1. Mail:
    Guten Tag Herr Müller

    2. Mail:
    Guten Tag Herr Müller
    Guten Tag Herr Muster

    3. Mail:
    Guten Tag Herr Müller
    Guten Tag Herr Muster
    Guten Tag Herr Frank

    usw...

    Hier mein PHP Script:

    PHP-Code:
    <?php
    include("../DB/connect.php"); 

    $sql "SELECT * FROM rapporte_daily_email_reminder"
    $sql1 = (mssql_query("SELECT COUNT(*) as 'anz' FROM rapporte_daily_email_reminder"));
    $result1 mssql_fetch_array($sql1);
    $result mssql_query($sql); 

    if (
    mssql_num_rows($result) > 0) {

    $headers .= "FROM: info@testmail.com>\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";     
    $subject "Rapport-Erinnerung"

    while( 
    $row=mssql_fetch_array($result)) {
    $empfaenger $row['email'];

    $text .= "<font size=\"2\" face=\"Verdana\">Guten Tag $row[anrede] $row[user_name]</font>";
    $text .= "<br />
    "
    ;

    mail($empfaenger$subject$text$headers) or die("Die Mail konnte nicht versendet werden."); 
    echo 
    '<span style="color: #008000; font-family: Verdana; font-size: small">Mail versendet</span>';
    }
    }
    ?>
    Ich denke ich übersehe nur ein kleines Detail, dass es nicht klappt...
    Aber ich komme alleine nicht drauf und wäre froh, wenn ihr mir helfen könntet.

    Danke und Grüsse
    Dominik

  • #2
    Du musst auch mal $text wieder leeren!

    Des weiteren verwende bitte eine Mailerklasse...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Hallo Arne,

      du meinst mit

      PHP-Code:
      unset($text); 
      bringe ich das hin ?
      Das mit der Mailerklasse nehme ich gerne entgegen.

      Gruss Dominik

      Kommentar


      • #4
        Na es würde schon reichen, wenn Du einfach den Punkt bei der ersten Zuweisung rausnimmst:
        PHP-Code:
        $text .= "<font size=\"2\" face=\"Verdana\">Guten Tag $row[anrede] $row[user_name]</font>"
        ...genau in der Zeile.

        EDIT:
        Ein bischen übersichtlicher wäre das z.B.
        PHP-Code:
        $text '<font size="2" face="Verdana">Guten Tag ' $row['anrede'] . ' ' .  $row['user_name'] . '</font>'
        ...dadurch kannst Du auch die Array-Indexierung korrekt anwenden, ohne mit Deinem Quotes-WirrWarr durcheinander zu kommen.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Hallo Arne,

          klappt! Herzlichen Dank!

          Gruss Dominik

          Kommentar

          Lädt...
          X