[Frage] Massen-Mails durch foreach-Schleife

  • 0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    21. 07. 2014, 16:31

    Hallo zusammen,

    ich habe derzeit ein etwas sehr merkwürdiges Problem. ;)
    Es geht um eine Extension die E-Mails für Mail-Abos versenden soll. D.h. bei einer bestimmten Konstellation soll die Extension eine bzw. mehrere verschiedene E-Mails an viele Empfänger schicken. Das ganze hat auch in den Testings wunderbar geklappt, nicht mehr aber mit Einstellen der ganzen Produktiv-Abos. Hier bekomme ich nach langer Zeit einfach einen TimeOut.

    Ich rufe die "$message = (new \TYPO3\CMS\Core\Mail\MailMessage());" sowie "$message->send()" dafür innerhalb einer foreach-Schleife auf, die sämtliche Empfänger abarbeitet. Nachdem es nun also bei ca. 200 Empfängern im Gegensatz zu meinen 2-3 Testempfängern nicht mehr funktioniert, gehe ich davon aus dass der Aufruf der MailMessage-Klasse einfach zu lange dauert.

    Gibt es eine Möglichkeit die Mails in eine Art Warteschleife zu legen um das Script in einer annehmbaren Zeit abzuarbeiten und einen gültigen Server-Response geben zu können? Oder empfiehlt es sich bei "Massen-Mails" nicht über die Typo3-Mail-Funktion sondern einfach über PHP mail() zu gehen?

  • Hilfreichster Beitrag

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    1 x
    3078 Beiträge
    132 Hilfreiche Beiträge
    22. 07. 2014, 10:26 - Hilfreichster Beitrag

    Hallo.

    Zitiert von: terrorhamster
    Oder empfiehlt es sich bei "Massen-Mails" nicht über die Typo3-Mail-Funktion sondern einfach über PHP mail() zu gehen?
    Problem ist nichtd as Mittel, sondern die Menge. Wenn Du mit Deinen Golf 5 Umzugkisten wegfahren kannst, bei 150 aber feststellst, dass Du einige Touren fahren müsstest, dann hilft es auch nichts, den älteren Golf Deiner Eltern zu nehmen ;-)

    Für Massenmails stößt Du an zwei Grenzen:
    1. Die Skriptlaufzeit
    2. Die Mail-Queue des versenden Servers

    Für ersteres empfiehlt sich die Bildung einer Abarbeitunsgschlange udn deren Abarbeitung via mehrer Requests (um auf mehrere Skriptlaufzeiten zu setzen) oder die Abarbeitung via CLI (da auf CLI meist die Skiptlaufzeit deutlich länger sein das)

    Zum zweiten wird irgendwann der Mailserver dichtmachen, wenn Du zuviel (gleichartige) Mails einreichst. Auch hierfür ist ggf. eine Entzerrung in mehrere Häppchen sinnvoll.

    Viele Grüße
    Julian


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    1 x
    3078 Beiträge
    132 Hilfreiche Beiträge
    22. 07. 2014, 10:26

    Hallo.

    Zitiert von: terrorhamster
    Oder empfiehlt es sich bei "Massen-Mails" nicht über die Typo3-Mail-Funktion sondern einfach über PHP mail() zu gehen?
    Problem ist nichtd as Mittel, sondern die Menge. Wenn Du mit Deinen Golf 5 Umzugkisten wegfahren kannst, bei 150 aber feststellst, dass Du einige Touren fahren müsstest, dann hilft es auch nichts, den älteren Golf Deiner Eltern zu nehmen ;-)

    Für Massenmails stößt Du an zwei Grenzen:
    1. Die Skriptlaufzeit
    2. Die Mail-Queue des versenden Servers

    Für ersteres empfiehlt sich die Bildung einer Abarbeitunsgschlange udn deren Abarbeitung via mehrer Requests (um auf mehrere Skriptlaufzeiten zu setzen) oder die Abarbeitung via CLI (da auf CLI meist die Skiptlaufzeit deutlich länger sein das)

    Zum zweiten wird irgendwann der Mailserver dichtmachen, wenn Du zuviel (gleichartige) Mails einreichst. Auch hierfür ist ggf. eine Entzerrung in mehrere Häppchen sinnvoll.

    Viele Grüße
    Julian

  • Velletti Velletti
    R2-D2
    1 x
    83 Beiträge
    3 Hilfreiche Beiträge
    25. 07. 2014, 13:24

    und warum das Rad immer neu erfinden ?

    es gibt im TER eine extension die heist "newsletter" die kann das alles was du willst und vermutlich noch mehr: ist akutell auch an 6.2 angepasst worden ..

    die newsletter werden über einen CLI aufruf, getriggert durch einen Cronjob verschickt. Man kann die Anzahl der gleichzeitig zu verschickenden Mails einstellen inkl des Abstands, wann der nächste Schung verschickt werden soll. also z.b. alle 5 Minuten immer 100 Email

    Zudem sind darin funktionen wie:

    - Bounces automatisch zu handlen
    - Abbestellungen zu verwalten
    - Click zahlen oder Viewzahlen (über eingebettete Bilder)
    - Testversand ein kleine Testgruppe
    - NL Empfänger aus FE users, CSV Datei oder andere Tabelle
    und was nicht sonst noch ...

    zum Abgucken, wie die das gemacht haben auf jeden Fall hilfreich ...

    Typo3 seit 2010. Multilinguale (> 8 ) , Multi-Domain Installation aktuell unter 4.5.x LTS:
    Main used Extension: DAM, REAL URL, Powermail, tt_address, tt_news, cal, MM_forum (fork), Community (fork), Diversen eigenen extbase/Fluid extension

  • 1