Ankündigung

Einklappen
Keine Ankündigung bisher.

php Newsletter "unsubscribe"-link

Einklappen

Neue Werbung 2019

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

  • php Newsletter "unsubscribe"-link

    Hallo ich arbeite gerade an einem Newsletter system.
    Ich habe nur noch ein Problem:

    Beim verschicken des Newsletters werden aus der Datenbank aller Nutzer rausgeholt, welche sich registiert und bestätigt haben:

    PHP-Code:
    $address_query "SELECT address FROM mailinglist_subscribers WHERE confirmed = '1'";
        
    $address_result mysql_query($address_query) or die("Anfrage fehlgeschlagen[gfm] : " mysql_error());
        return 
    $address_result
    Und dann versandt.

    Als Fußzeile eines jeden Newsletters möchte ich gern einen direkten Link zur abmeldung hinschreiben. In etwa so:
    PHP-Code:
    $unsub_message "Sie erhalten diese Nachricht, weil Sie sich für den $newsletter_name registriert haben. Wenn Sie in Zukunft keinen Newsletter mehr von uns bekommen wollen Klicken Sie bitte hier: http://www.beispiel.de/newsletter/send.php?email=?????&userkey=?????";
    echo 
    "$unsub_message"
    Beide werte liegen in der Datenbank, wobei der userkey bei der Anmeldung generiert wurde und für jeden user individuell ist.

    Wie sieht jedoch jetzt der php code ür die variablen aus, damit auch jede Adresse den richtigen code aud der DB bekommt, da ja über den befehl oben x-beliebig viele Email Adressen zum versand kommen?

    Ich hoffe ich konnte es verständlich erklären.

    Liebe Grüße

  • #2
    Hi,

    du gibst doch beim auslesen des SQL Statements die Werte in einer While Schleife aus, korrekt? Da werden alle Daten doch übergeben, die Du brauchst, zum anhängen?!?

    mfg Wolf29

    Kommentar


    • #3
      Hallo Danke für die schnelle antwort.

      mein Code sieht mitnerweile so aus:

      PHP-Code:
      $addy "";
              
      $adresse "SELECT address FROM mailinglist_subscribers WHERE confirmed = '1'";
              
      $adresse_result mysql_query($adresse);
              while (
      $row mysql_fetch_assoc($adresse_result))
              {
                  
      $addy .= "$row[address],";
              }
              
      $subscriber substr($addy0, -1);
              
              
      $unsub_message "Sie erhalten diese Nachricht, weil Sie sich für den $newsletter_name registriert haben. Wenn Sie in Zukunft keinen Newsletter mehr von uns bekommen wollen Klicken Sie bitte hier: http://www.agentur-heads.de/newsletter/send.php?email=$subscriber"
      Nur leider werden dann ALLE mailadressen aller benutzer angezeigt, ich möchte aber nur die haben , wo die mail auch hingeht.
      Denn beim Versand der den Newsletters werden alle gesammelten adressen ins BCC gepackt.
      Wie kann ich nun nur die jeweile adresse abbilden?

      Kommentar


      • #4
        Keiner eine Idee?

        Kommentar


        • #5
          Nur leider werden dann ALLE mailadressen aller benutzer angezeigt, ich möchte aber nur die haben , wo die mail auch hingeht.
          Wie kennzeichnest Du den in deiner Datenbank, wer einen Newsletter erhalten soll? Das fehlt als Kriterium in deinem Statement, damit Du nur die E-Mail Adressen bekommst, die den Newsletter erhalten sollen.

          mfg Wolf29

          Kommentar


          • #6
            Alle, Adressen welche in der DB stehen werden in den BCC gesetzt. es wird vorher noch geschaut, ob in der spalte "confirmed" der wert 0 oder 1 ist. und alle mit 1 gehn in den BCC.

            Kommentar


            • #7
              Wenn du personalisierte Newsletter versenden möchtest wirst du nicht drumherum kommen die Mails einzeln zu verschicken - das kann mit BCC nicht funktionieren

              Ich habe es mal so gelöst das ich die personalisierten Mails in einer Tabelle zwischengespeichert habe, d.h. Empfänger, (personalisierter) Body, Betreff.
              Am Server läuft ein Cronob der, so Einträge in der DB vorhanden, alle 15 Minuten 100 Mails verschickt (und danach die entspr. Einträge aus der Tabelle entfernt).
              Für ein Newslettersystem in überschaubarem Rahmen funktioniert das sehr gut.

              Kommentar


              • #8
                Einzeln versenden, sonst kannst Du den Link nicht personalisieren.

                Ich würde den Link noch mit der Userkey Nummer erweitern, also etwa

                PHP-Code:
                www.example.com/unsubscribe.php?email=mail@example.com&&ukey=22938489248923 
                Wobei ukey Dein UserKey ist.

                Kommentar


                • #9
                  Ich würde da besser nen schönen Hash draus zimmern und den in der DB hinterlegen.

                  Kommentar


                  • #10
                    Danke für die antworten, wie wäre denn dann der weg das einzeln zuverschicken, ohne mich selber hinzusetzen.
                    ICh müsste je die erste Adresse aus der DB in den BCC legen und die Adresse und den Key in den Unsub-Link packen.
                    Und dann zur 2ten Adresse und so weiter... Nur wie mache ich das im php? Könnt ihr mir nen kleinen Ansatz geben?

                    Kommentar


                    • #11
                      phpmailer-Klasse benutzen, da gibts sogar einen Beispielcode für das Versenden innerhalb der Schleife.

                      Kommentar

                      Lädt...
                      X