Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Script für "Massen"-Newsletteraustragung

    p3e

    • Experte
    • Beiträge: 2.426
    Script für "Massen"-Newsletteraustragung
    am: 01. Dezember 2010, 09:00:36
    Gibt es ein Script, mit dem man eine Liste an Mailadressen automatisch aus dem Newsletter austragen kann?
    Ich will das Newslettermodul von all den Karteileichen befreien, die bei jedem Rundschreiben dabei sind.



    Linkback: https://www.modified-shop.org/forum/index.php?topic=9718.0
    Shop Hosting

    franky_n

    • Experte
    • Beiträge: 4.950
    Script für "Massen"-Newsletteraustragung
    Antwort #1 am: 01. Dezember 2010, 09:03:49
    Hallo p3e,

    mir ist nicht bekannt das es sowas gibt.
    Aber nur mal rein technisch:
    Wie soll das Script erkennen was "Karteileichen" sind?
    Ich denke das ist technisch nur umsetzbar wenn das Skript das weiß... :)

    Viele Grüße

    Franky

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Script für "Massen"-Newsletteraustragung
    Antwort #2 am: 01. Dezember 2010, 09:12:59
    Entweder ganz klassisch mit einem SQL-Statement. (kann nach gleichem Muster erweitert werden) [getestet]

    Code: SQL  [Auswählen]
    DELETE FROM newsletter_recipients WHERE customers_email_address = 'mail1@kun.de' OR  customers_email_address = 'mail2@kun.de' OR  customers_email_address = 'mail3@kun.de'
    Oder das als for Schleife, welche die Zeilen der Text-Liste zählt für die Anzahl der Durchläufe des Scripts.
    Und dann aus jeder Zeile die eMail in dem SQL-Delete-Statement ausführt.

    Gruß

    h-h-h

    franky_n

    • Experte
    • Beiträge: 4.950
    Script für "Massen"-Newsletteraustragung
    Antwort #3 am: 01. Dezember 2010, 09:21:51
    Hallo h-h-h,

    tjo nur weiß das Skript dann immer noch nicht welche Kundenmails das sein sollen...  :whistle:

    Dann kann er das auch von Hand. ;)

    Viele Grüße

    Franky

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Script für "Massen"-Newsletteraustragung
    Antwort #4 am: 01. Dezember 2010, 09:23:54
    Hey Franky,
    mir scheint als ob Du da etwas überlesen hast:

    [...] mit dem man eine Liste an Mailadressen automatisch aus dem Newsletter austragen kann?
    [...]

    Schönen Gruß

    h-h-h

    p3e

    • Experte
    • Beiträge: 2.426
    Script für "Massen"-Newsletteraustragung
    Antwort #5 am: 01. Dezember 2010, 09:30:52
    Danke hhh, sowas meinte ich, dachte nur, dass es vielleicht schon was fertiges gibt wo ich die Liste nur importieren brauche.
    Kann man per sql auch eine Liste oder ein Array angeben? Dann spare ich mir das in php über eine Schleife zu machen.

    @franky_n: Die Liste an unerwünschten Mailempfängern ist vorhanden. Ist aber leider zu lang um das alles von Hand zu machen ;)

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Script für "Massen"-Newsletteraustragung
    Antwort #6 am: 01. Dezember 2010, 09:38:26
    Man könnte das ganze auch wie folgt aufbauen.. (ungetestet) [BACKUP!!]
    newsletter-cleaner.php

    Code: PHP  [Auswählen]
    <?php
    mysql_connect("localhost", "USERNAME","PASSWORT") or die
            ("Keine Verbindung zur Datenbank moeglich");
    mysql_select_db("DATENBANK") or die
            ("Die Datenbank existiert nicht.");

    $emailliste = file("emailadressenliste.txt");
    foreach ($emailliste as $mail)
    {
            $sql = "DELETE FROM newsletter_recipients WHERE customers_email_address = '$mail'";
            mysql_query($sql) or die("Fehler: " . mysql_error() . " in Zeile " . $mail);
    }
    ?>
    Gruß

    h-h-h

    p3e

    • Experte
    • Beiträge: 2.426
    Script für "Massen"-Newsletteraustragung
    Antwort #7 am: 01. Dezember 2010, 10:13:00
    Danke h-h-h für die Mühe. So werde ich es wohl machen. Hatte halt die Hoffnung das per phpMyAdmin regeln zu können. Wollte mir PHP sparen, weil ich diese Woche nicht im Büro bin und von dem Rechner hier nicht an ftp ran komme. Dann mache ich das alles wohl doch erst nächste Woche.

    franky_n

    • Experte
    • Beiträge: 4.950
    Script für "Massen"-Newsletteraustragung
    Antwort #8 am: 01. Dezember 2010, 11:51:15
    Hallo h-h-h,

    da hast Du vollkommen Recht! Das habe ich überlesen.  :datz:

    Viele Grüße

    Franky

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Script für "Massen"-Newsletteraustragung
    Antwort #9 am: 01. Dezember 2010, 14:54:54
    http://alturl.com/x4egu
    Hier ist das Script voll funktionstüchtig. ;)

    Es werden KEINE der eingegebenen Daten gespeichert!

    Dann klappt es auch ohne FTP-Daten.

    Schreib mir einfach eine PM mit Deiner Telefonnummer und ich rufe Dich an (falls Du mir nicht vertrauen solltest) :)

    Schönen Gruß

    h-h-h

    p3e

    • Experte
    • Beiträge: 2.426
    Script für "Massen"-Newsletteraustragung
    Antwort #10 am: 01. Dezember 2010, 15:22:56
    Vielen Dank für das Anbieten Deiner Hilfe (was ich sehr zu schätzen wisse).

    Ich habe aber inzwischen selber eine Lösung ohne ftp gefunden. Ich habe in Word die Mailliste geladen (genau genommen hatte ich die Liste nochmal unterteilt weil es über 100 Adressen waren) und habe durch suchen/ersetzen jeden Zeilenumbruch durch ' OR  customers_email_address = ' ersetzt.
    Dann habe ich das erste ' OR  durch DELETE FROM newsletter_recipients WHERE ersetzt und zum Schluss noch ein ' angehängt.
    Rein in phpmyadmin und Fertig. Ist zwar etwas unkonventionell aber erfüllte seinen Zweck.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.370
    • Geschlecht:
    Script für "Massen"-Newsletteraustragung
    Antwort #11 am: 01. Dezember 2010, 15:23:34
    http://alturl.com/x4egu
    Hier ist das Script voll funktionstüchtig. ;)

    Es werden KEINE der eingegebenen Daten gespeichert!

    Dann klappt es auch ohne FTP-Daten.

    Schreib mir einfach eine PM mit Deiner Telefonnummer und ich rufe Dich an (falls Du mir nicht vertrauen solltest) :)

    Schönen Gruß

    h-h-h

    Da bastelt er direkt wieder eine Lösung, dieser h-h-h. ;-)

    Grüße

    Torsten

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Script für "Massen"-Newsletteraustragung
    Antwort #12 am: 01. Dezember 2010, 15:30:58
    Ok, gut das Du eine Lösung gefunden hast. ;)

    Falls es dann noch mal jemand gebrauchen kann..

    newsletter-cleaner.php

    Code: PHP  [Auswählen]
    <html>
    <head>
    <title> modified eCommerce Shopsoftware - Newslettercleaner by h-h-h</title>
    </head>
    <body>
    <div style="margin: 20px auto;width: 500px;padding:20px; font-size:bold; color:#888; background: #ccc;border:3px dotted yellow">
    <h2>modified eCommerce Shopsoftware - Newslettercleaner</h2>
    <?php
    if ( ($_POST["security"] == 'checked') AND (addslashes(htmlentities($_POST["host"])) != 'localhost') )
    {
    @mysql_connect(addslashes(htmlentities($_POST["host"])), addslashes(htmlentities($_POST["user"])), addslashes(htmlentities($_POST["pass"]))) or die ("Keine Verbindung zur Datenbank moeglich");
    @mysql_select_db(addslashes(htmlentities($_POST["DB"]))) or die ("Die Datenbank existiert nicht.");
    //$emailliste = file("emailadressenliste.txt");
    $emailliste = explode("\n", addslashes($_POST["eMail"]));
    $i = '1';
    foreach ($emailliste as $mail)
            {
            echo $i." - <b>".$mail."</b>  : ";
    $mail = str_replace(array( "\n", "" , "\b" , "\r", "\Z" ),"",$mail);
            $abfrage = mysql_query("SELECT * FROM newsletter_recipients WHERE customers_email_address='".$mail."'");
            if (!$abfrage) { echo 'Etwas stimmte mit dem Query nicht: <br />'.mysql_error().'<br />'; }
            while ($row = mysql_fetch_object($abfrage))     { $db_mail[$i] = $row->customers_email_address; }
            if ($db_mail[$i] == $mail)
                    {
                            echo ' eMail-Adresse existiert ';
                            mysql_query("DELETE FROM newsletter_recipients WHERE customers_email_address='".$mail."'");
                            $abfrage = mysql_query("SELECT * FROM newsletter_recipients WHERE customers_email_address='".$mail."'");
                            while ($row = mysql_fetch_object($abfrage))     { $db_mail_del[$i] = $row->customers_email_address; }
                            if ($db_mail_del[$i] == $mail) { echo 'und<span style="color:red;"> wurde nicht gelöscht</span>.'; } else { echo 'und <span style="color:green;">wurde erfolgreich gelöscht</span>.';}
                    }
            else
                    {
                            echo ' <span style="color:red;">eMail-Adresse existiert nicht in der Datenbank</span>. ';
                    }
     echo "<br />";

            $i++;
    }  

    }else{
    ?>
    <FORM method=post action='<?php echo $PHP_SELF; ?>'>
     MySQL-Host: <input type="text" size="17" name="host" />
      MySQL-DB:   <input type="text" size="17" name="DB" /><br />
     MySQL-User: <input type="text" size="17" name="user" />
      MySQL-Pass: <input type="password" size="17" name="pass" /><hr />
     <textarea name="eMail" cols="59" rows="25">mail1(a)kun.de
    mail2(a)kun.de
    mail3(a)kun.de
    mail4(a)kun.de</textarea><br /><br />
    <input type="hidden" name="security" value="checked">
    <INPUT type=submit value="SQL NEWSLETTER-EMAIL DELETE ?">
    </FORM>
    <div style="margin:20px auto;padding:10px;width:450px;background:silver; color:#777;">
    <li>Es wird keinerlei Haftung für Schäden übernommen</li>
    <li>Ein Backup der Datenbank ist immer wieder zu empfehlen</li>
    </div>
    <?php
    }
    ?>
    </div>
    </html>
     
    Schönen Gruß

    h-h-h

    p3e

    • Experte
    • Beiträge: 2.426
    Script für "Massen"-Newsletteraustragung
    Antwort #13 am: 02. Dezember 2010, 08:41:02
    super!

    6 Antworten
    5043 Aufrufe
    12. März 2018, 14:32:49 von andy.kegel
    10 Antworten
    11141 Aufrufe
    06. Juli 2011, 15:49:42 von Tomcraft
    1 Antworten
    4449 Aufrufe
    03. Juli 2011, 14:26:18 von Tomcraft
               
    anything