Newsletter - zu viele Empfänger - was nun tun .... ?!?

Begonnen von KeinenPlan, 16 Juni 2005, 15:49:38

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 4 Gäste betrachten dieses Thema.

KeinenPlan

Hallo,
wir haben im mx ca. 27.000 Newsletter-Empfänger .... nun gibt es einige Probleme:
Zum einen sind bestimmt 10-15% davon doppelte oder dreifache eMail Adressen!
Wie bekomm ich die raus ? Ich kann doch nicht manuell die ganze Datenbank durchgehen !?
Mein Provider hat mir den Tip gegeben: "select DISTINCT" - aber wa sgenau muss ich da machen, damit doppelte, dreifache und x-fache eMail Adressen rausfliegen ?
Das war das eine, und das andere ist einfach, wie hier im Forum bereits beschreiben, dass der Newsletter schlicht und einfach nicht mehr an alle Empfänger rausgeht, da diese ominöse time einstellung zu gering ist, abe rihc kann die doch nicht manuell so hochdrehen! Da hat mir der Provider erklärt, ich solle am besten den Newsletter "stückeln" - also häppchenweise versenden! Wie mach ich da snun am geschicktesten? Wer kann mir da helfen?
Also zum einen die doppelten und x-fachen raus und zum anderen den Versand an 25.000 + x Empfänger sicherzustellen! Komishcerweise kommt übrigens bei mir keine Fehlermeldung - es steht nur da, "Newsletter Adminbereich" - mehr nicht, keine Fehlermeldung - aber auch nichts anderes mehr ....
Also wer erbarmt sich und schreibt hier mal ein paar Lösungsvorschläge ;-)

Vielen Dank schonmal !



RiotheRat

Der Tipp von Deinem Provider ist nicht schlecht ... ein Beispiel ...

SELECT * FROM prefix_users WHERE email != ' ' würde alle ALLE Benutzer aus der Datenbank auslesen bei denen die eMailadresse nicht leer ist.


SELECT DISTINCT * FROM prefix_users WHERE email != ' ' würde hingegen alle alle Benutzer aus der Datenbank auslesen bei denen die eMailadresse nicht leer ist und das nur einmal. Egal wieoft diese Emailadresse im System vorkommt.

Hmm ... bei 27.ooo Empfänger kommt jedes Script an seine Grenzen. Dazu müsste man das umbauen, dass es immer nur "Häppchen zu je X Empfängern" sendet.

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

KeinenPlan

Hmmm,
und wie heisst nun der "genaue" Befehl um die mehrfachen rauszubekommen? Die Tabelle in der DB lautet "nuke_newsletter" ?! (Ist aber schon ein mx21, nur eben immer upgedatet).
Ich will zumindest mal die merhfachen draussen haben!
Und würdest Du Dich evtl dazu bereit erklären bzw jemand anderes, das Newslettermodul für die "häppchenweise" Versendung umzubauen?
(Ich würde mich natürlich dafür erkenntlich zeigen .... schicke pn ...)

Selkie

Zitat von: RiotheRat am 16 Juni 2005, 16:33:23
SELECT DISTINCT * FROM prefix_users WHERE email != ' ' würde hingegen alle alle Benutzer aus der Datenbank auslesen bei denen die eMailadresse nicht leer ist und das nur einmal. Egal wieoft diese Emailadresse im System vorkommt.
Ähmm, das ist nicht ganz richtig.  8) Die Abfrage müsste lauten:
SELECT DISTINCT emai FROM prefix_users WHERE email != ' '

Somit werden schon einmal alle doppelt vorkommenden E-Mail Adressen ausgeschlossen. Ich denke das sollte helfen!  ;) ;)

jogi24

hi

da ist aber was nicht richtig, wenn ich lesen kann  ;D ;D

DISTINCT emai

sollte das nicht

DISTINCT email

heissen   ;D ;D

RiotheRat

Das oben war nur ein Beispiel für "distinct" ...  :D ... es gibt natürlich nicht die korrekte Abfrage der Tabelle wieder, das sieht man doch schon an der Tabelle die in dem Beispiel verwendet wird ... "users" ...

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

Selkie

#6
*Ähmm *oops  :o ;D ;D
Sowas kommt bei schnellschüßen raus! Wollte damit nur deutlich machen, dass bei "distinct" expliziet die Felder mit angegeben werden müssen!

KeinenPlan

Hmmm,
und was geb ich da jetzt nun am besten ein ?
SELECT DISTINCT email FROM nuke_users WHERE email != ' ' ??
Aber die Empfänger stehen doch in der nuke_newsletter - tabelle drin !?

Oder geht der Newsletterversand nach der Tabelle nuke_users - "Unterpunkt" Newsletter ?! Was ist aber dann nuke_Newsletter ? Hier sind nämlich auch die ganzen Leute drin, die den Newsletter erhalten sollen, also die 27k ?!
Ist das eine Überschneidlung zwischen einer alten und einer neuen Version ???

Also wo greif ich denn grundsätzlich mal an ? Unter nuke_newsletter oder unter nuke_users ?? Und wieso ist das überhaupt doppelt ?

Und wie schaut es mit der Stückelung aus ? Würde das jemand machen ??? RtR ?? *liebschau* Wer Lust hat PN an mich, dann unterbreit ich n "kleines" Angebot - hängt auch von der Zeit ab ;-)

KeinenPlan

*mal ganz vorsichtig hochschieb*

Wie funktioniert das mit dem Befehl im mysql ?

und vor allem das mti dem aufsplitten des newsletters - es wäre doch sehr wichtig, hab ich ab anfang juli einige newsletter - buchungen, denen ich noch nciht wirklich zusagen konnte, weil ich ja nicht garantieren kann, dass die mails rausgehen ....
über (schnelle)  hilfe würde ich mich freuen

jubilee

Hallo !
Zitat
SELECT DISTINCT email FROM PREFIX_newsletter LIMIT 0, 250
dann
Zitat
SELECT DISTINCT email FROM PREFIX_newsletter LIMIT 250, 250
dann
Zitat
SELECT DISTINCT email FROM PREFIX_newsletter LIMIT 500, 250
für 250' er Schritte
PREFIX gegen den von Dir verwendeten DAtenbankprefix tauschen
MfG
jubilee

KeinenPlan

Mmmh,
irgendwie ist das alles schön und gut, aber irgendwie bekomme ich die doppelten nicht raus!
SELECT DISTINCT email FROM nuke_newsletter WHERE email != ' ' zeigt mir scheinbar alle email adresse an, und lässte die doppelten weg (also ca 23000 von gut 27000 - es scheint also ca. 4000 doppelte zu geben).
aber wie lösch ich dann die 4000 doppelten ?

Und:
SELECT DISTINCT email FROM nuke_newsletter LIMIT 0, 250
usw. iun 250er schritten ...

listet mir immer nur emails auf, und wie kann ich hier löschen ? also bringt auch irgendwie nicht sehr viel, scheint ja auch die selbe abfrage wie oben zu sein, nur eben werden hier schoenbar imme rnur 250 von den ganzen aufgelistet - abewr was bringt das ? wie bekomm ich damit alle doppelten email anmeldungen weg ?



und nochmal die frage nach dme häppchenversand: ist da sn großer aufwand ? würde das jemand mal schreiben ? vielen dnak ;-)

jubilee

Hallo !
Zitatalso bringt auch irgendwie nicht sehr viel
Evt liegt das an der Formulierung der Frage ?
Zitatund vor allem das mti dem aufsplitten des newsletters

Genau dafür war die Query wo Du in 250 Schritten die (nicht doppelten) Emailadresse angezeigt bekommst.

Zitatscheint ja auch die selbe abfrage wie oben zu sein, nur eben werden hier schoenbar imme rnur 250 von den ganzen aufgelistet - abewr was bringt das
Es splittet die Newsletterempfänger in eine bestimmte Menge auf .

Aber da ich jetzt ja endlich weiss was genau Du möchtest (löschen der doppelten Einträge)
Abfrage für MySQL (phpMyAdmin)

ZitatSELECT PREFIX_newsletter.email, PREFIX_newsletter.id FROM PREFIX_newsletter
LEFT JOIN PREFIX_newsletter AS table2 ON table2.email = PREFIX_newsletter.email
AND table2.id != PREFIX_newsletter.id
WHERE table2.email IS NOT NULL
GROUP BY PREFIX_newsletter.email, PREFIX_newsletter.id;
Bitte wieder PREFIX gegen den verwendeten Datenbankprefix tauschen ....


MfG
jubilee

KeinenPlan

Hab ich nun so gemacht ....
irgendwie hab ich die Seite zum Absturz gebracht, ca. ne halbe Stunde ging gar nix mehr ....
Die Anzahl der Empfänger hat sich um genau einen verringert - ob das wirklich an dem Code lag oder ob sich jemand abgemeldet hat, weiss ich nicht.
Hab das genauso reingeschrieben, nur aus dem prefix "nuke" gemacht (mein prefix):
SELECT PREFIX_newsletter.email, PREFIX_newsletter.id FROM PREFIX_newsletter
LEFT JOIN PREFIX_newsletter AS table2 ON table2.email = PREFIX_newsletter.email
AND table2.id != PREFIX_newsletter.id
WHERE table2.email IS NOT NULL
GROUP BY PREFIX_newsletter.email, PREFIX_newsletter.id;

Irgendeine Idee warum es nich tfunktioniert hat ?

jubilee

Hallo !
Zitatirgendwie hab ich die Seite zum Absturz gebracht, ca. ne halbe Stunde ging gar nix mehr ....
Ist im phpMyAdmin ein ergebnis gekommen oder eine Fehlermeldung ??

Zitatob das wirklich an dem Code lag oder ob sich jemand abgemeldet hat, weiss ich nicht.
Die Query löscht nix, sondern zeigt die entspr. datensätze nur an. Löschen musst Du diese im phpMyAdmin selber.

ZitatIrgendeine Idee warum es nich tfunktioniert hat ?
Evt. zu viele Datensätze auf einmal abgefragt .....

--->
ZitatSELECT PREFIX_newsletter.email, PREFIX_newsletter.id FROM PREFIX_newsletter
LEFT JOIN PREFIX_newsletter AS table2 ON table2.email = PREFIX_newsletter.email
AND table2.id != PREFIX_newsletter.id
WHERE table2.email IS NOT NULL
GROUP BY PREFIX_newsletter.email, PREFIX_newsletter.id LIMIT 250;

MfG
jubilee

KeinenPlan

es passiert irgendwie nichts ! die "sanduhr" (statt mauszeiger) kommt, und das dauert dann "ewig" lange .... aber es passiert einfach nichts, es kommt auch keine neue seite - es bleibt einfach stehen ....
bzw im inet explorer komtm irgendwann mal "aktion abgebrochen" .... (kommt übrigens immer noch)