Lasttest Newsletter Skript

skiordie

Registered User
Hi,

ich bin einer der Entwickler der kostenlosen Newsletterkomponente MK Postman für das CMS Joomla! (MK Postman Joomla Newsletter Component - Official Support Site - Aktuelles).

Dieses Skript wird teilweise für den Versand an bis zu 10.000 Teilnehmer verwendet. Bei einigen Nutzern ist das auch kein Problem, andere jedoch beklagen Abbrüche und überlastete Server.

Nun wäre es sehr gut, wenn es eine Möglichkeit gäbe, den Versand im Vorfeld zu simulieren, damit man nicht 10 Versuche benötigt, um den gewünschten Newsletter unter das Volk zu bringen. Soweit ich weiß, gibt es nach der Übergabe der Mail an den Mail Server (phpmailer bzw. SMTP können gewählt werden) aus PHP Sicht keine Möglichkeit, den Erfolg des Versandt's zu bestätigen.

Evtl. gibt es aber doch Möglichkeiten, den Versand zu simulieren und mir kann jemand aus dem Forum einen entscheidenden Denkanstoß geben.

Vielen Dank!
 
Dieses Skript wird teilweise für den Versand an bis zu 10.000 Teilnehmer verwendet. Bei einigen Nutzern ist das auch kein Problem, andere jedoch beklagen Abbrüche und überlastete Server.

Wie sieht das Phänomen genau aus? Welche Komponente ist überlastet? Das PHP-Skript oder der Mailserver?

Am besten wäre es, wenn du das Verschicken der Mails im Hintergrund durchführen könntest, die Anwendung also nicht blockiert. Dann kannst du ausserdem auch einfacher Möglichkeiten implementieren, den Mailserver nicht zu überlasten.

(Wenn man desöfteren Mailings dieser Grössenordnung verschickt, lohnt es sich ausserdem, sein Mailsetup darauf einzurichten. Das CMS sollte die Mails immer über eine "freundlichen" Mailserver verschicken, d.h. dieser Mailserver sollte alle Mail vom CMS annehmen, ansonsten ist das ganze Mailing verdammt instabil...)


Nun wäre es sehr gut, wenn es eine Möglichkeit gäbe, den Versand im Vorfeld zu simulieren, damit man nicht 10 Versuche benötigt, um den gewünschten Newsletter unter das Volk zu bringen. Soweit ich weiß, gibt es nach der Übergabe der Mail an den Mail Server (phpmailer bzw. SMTP können gewählt werden) aus PHP Sicht keine Möglichkeit, den Erfolg des Versandt's zu bestätigen.

Doch, es geht schon, allerdings musst du dann die Bounces auswerten; diese werden an die Absender-EMail-Adresse geschickt. Auf einem Unix-System würde ich empfehlen, eine neutrale Absende-Adresse einzurichten und alle Mails daran über ein Skript direkt in eine Datenbank einzutragen. Also etwa folgendes in die /etc/aliases eintragen:

Code:
meineAbsenderAdresse: |/Ver/arbeitungs/skript

(Man sollte es besser machen und das nicht über Systemuser, sondern über virtuelle User erledigen (man virtual beim postfix), aber ist ein anderer Punkt.)

Dein Verarbeitungsskript kann dann die Bounces aussortieren und in die Datenbank schreiben. Das kannst du dann problemlos im CMS weiter verarbeiten.


Evtl. gibt es aber doch Möglichkeiten, den Versand zu simulieren und mir kann jemand aus dem Forum einen entscheidenden Denkanstoß geben.

Eine Simulation bringt da nichts.
 
Doch, es geht schon, allerdings musst du dann die Bounces auswerten; diese werden an die Absender-EMail-Adresse geschickt.
Ausschlaggebend ist hierbei der Absender im Envelope - nicht der im Header.
Und wie Amnesie schon schrieb, ist es eigentlich sowieso eine gute Idee, ein Bounce-Handling einzuführen um z.B. Mail-Adressen nach X Fehlzustellungen aus der Empfängerliste zu nehmen.

So viele Mails schickt man evtl. wirklich besser über einen Daemon, der den großen Schwall Mails auf viele kleinere Happen aufteilt und so die Last über einen größeren Zeitraum verteilt.
 
Hallo,

vielen Dank erstmal für die hilfreichen Hinweise. Das Problem an der Geschichte ist, dass nicht jeder, der das CMS einsetzt, auch einen eigenen Server hat. Evtl. sollte ich hier bei der Verwendung in "normalen" Webaccounts eine Begrenzung als Hinweis hinterlegen. Für den Versand an größere Gruppen sollte dies dann über einen Daemon erfolgen. Der zeitgesteuerte Versand ist ja sowieso ein Feature, was schon lange gewünscht wird.

Ich werde nun versuchen, die Hinweise umzusetzen und melde mich dann wieder, wenn es an irgendeiner Stelle klemmt.

Bis demnächst!
 
Back
Top