Massenmail-Problem (einfache Testmail O.K.)

  • dasoe dasoe
    Padawan
    0 x
    17 Beiträge
    0 Hilfreiche Beiträge
    28. 07. 2005, 10:36

    Hallo Liste,

    ich hoffe jemand kann mir helfen, ich bin an meiner Grenze.Ich habe typo3 3.7.0 und hatte direct_mail 1.0.8. Während der Entwicklung lief das auch problemlos. Nach einer Weile habe ich auf 1.1.0 umgestellt und die Probleme tauchten auf. Es könnte aber auch von anderer Seite kommen und nichts mit der Neueren Version von direct_mail zu tun haben, ich bin in der Entwicklung! Ich habe trotzdem den direct_mail-folder (/typo3/ext/) wieder mit 1.0.8 überspielt. Nun mein Problem:
    Ich kann keine Massenmail verschicken, die einfache Testmail funktioniert problemlos.
    Wenn ich eine Massenmail verschicke, sagt direct_mail, dass alles gut ist ( auch in der Statistk werden alle mails als verschickt markiert) aber sie kommen nicht an. Meine Mail-Logs bringen folgende Aufzeichung:

    --- einfache Testmail --- (O.K.)

    2005/07/25-18:44:34 24.124225771.22376.1122309874 <= p37964032 Commandline=/usr/sbin/sendmail -t -i
    2005/07/25-18:44:34 24.124225771.22376.1122309874 == for christian.oettinger@gmx.de
    2005/07/25-18:44:34 24.124225771.22376.1122309874 => sent to 127.0.0.1 (S=17092)

    --- Nachricht-mail: Begin Job --- (O.K.)

    2005/07/25-18:44:52 24.124225771.22384.1122309892 <= p37964032 Commandline=/usr/sbin/sendmail -t -i
    2005/07/25-18:44:52 24.124225771.22384.1122309892 == for christian.oettinger@gmx.de
    2005/07/25-18:44:52 24.124225771.22384.1122309892 => sent to 127.0.0.1 (S=630)

    --- Der Newsletters selbst (meine 3 Test-Adressen) ---

    2005/07/25-18:44:52 24.124225771.22392.1122309892 <= p37964032 Commandline=/usr/sbin/sendmail -t -i -f MID40_t286
    2005/07/25-18:44:52 24.124225771.22392.1122309892 ** smtp server didn't accept MAIL From, replied "501 <MID40_t286>: sender address must contain a domain".
    2005/07/25-18:44:52 24.124225771.22395.1122309892 <= p37964032 Commandline=/usr/sbin/sendmail -t -i -f MID40_t287
    2005/07/25-18:44:52 24.124225771.22395.1122309892 ** smtp server didn't accept MAIL From, replied "501 <MID40_t287>: sender address must contain a domain".
    2005/07/25-18:44:52 24.124225771.22398.1122309892 <= p37964032 Commandline=/usr/sbin/sendmail -t -i -f MID40_t288
    2005/07/25-18:44:52 24.124225771.22398.1122309892 ** smtp server didn't accept MAIL From, replied "501 <MID40_t288>: sender address must contain a domain".

    --- Nachricht-mail: Ended Job --- (O.K.)

    2005/07/25-18:44:52 24.124225771.22401.1122309892 <= p37964032 Commandline=/usr/sbin/sendmail -t -i
    2005/07/25-18:44:52 24.124225771.22401.1122309892 == for christian.oettinger@gmx.de
    2005/07/25-18:44:52 24.124225771.22401.1122309892 => sent to 127.0.0.1 (S=628-)

    Scheint, dass sendmail ein zusätzliches -f MID40_t287 geliefert bekommt. Hat jemand eine Idee?

    Danke für jede Hilfe!

    das oe (christian)

    ## CONFIGURATION of the direct mail module:

    mod.web_modules.dmail {
    plainParams = &type=99
    HTMLParams =

    # table name of a userdefined table similar to tt_address (same fields) which may be used for distribution also.
    userTable =
    enablePlain = 1
    enableHTML = 1

    http_username =
    http_password =
    sendOptions=3
    return_path=###XID###
    }
    mod.web_modules.dmail.long_link_mode=0
    mod.web_modules.dmail.enable_jump_url=0
    mod.web_modules.dmail.quick_mail_encoding=0
    mod.web_modules.dmail.categories.0=Newsletter
    mod.web_modules.dmail.from_email=christian.oettinger@gmx.de
    mod.web_modules.dmail.from_name = Oekom Verlag
    mod.web_modules.dmail.organisation = Oekom Verlag
    mod.web_modules.dmail.replyto_email =
    mod.web_modules.dmail.replyto_name =


  • Spyker Spyker
    Jedi-Meister
    0 x
    400 Beiträge
    0 Hilfreiche Beiträge
    19. 01. 2006, 13:39

    ich habe das selbe Problem.

    Gibt es schon eine Lösung?

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    22. 01. 2006, 18:33

    auch ich habe das Problem und nun noch eines dazu (weiter unten)!

    Seit dem Update von Web>Plugins, Direct Mail 1.0.8 auf 1.1.0 kamen auch bei mir HTML-Newsletter nur noch sporadisch an. Ich habe dann folgendes im Typo3.org-Forum gefunden:

    "...but I think that when the number is too large, the script may be scheduled before the previous cycle has completed. The process will not work correctly when there is parallel execution of the script. Processing of html mails is probably slower." The current solution is to reduce the Send per cycle number, or raise the time between each cycle.
    "

    Gut habe ich so halbwegs verstanden. Aber auch ein verringern konnte das Problem nicht vollständig lösen. Deshalb gehe ich davon aus, dieses Problem durch das Update auf die neuere Version verursacht wird.

    Gut, habe ich also v1.1.0 vom Server gelöscht und wieder die 1.0.8 istalliert. Seit dem habe ich nun einen weiteren Fehler im BE:
    Warning: implode(): Bad arguments. in /typo3_src-3.8.1/t3lib/class.t3lib_befunc.php on line 3177

    Das komische ist aber, dass dieser Fehler nun auch erscheint, wenn "Web>Plugins, Direct Mail" überhaupt nicht installiert ist ??!

    Es ist zum verrückt werden!! #angry#

    Hat jemand noch eine Idee??

  • dasoe dasoe
    Padawan
    0 x
    17 Beiträge
    0 Hilfreiche Beiträge
    22. 01. 2006, 23:59

    Hallo,

    Die gute Nachricht ist, dass das Problem (massenmails werden nicht versendet) zu lösen ist, die schlechte aber, dass ich nicht weiß wie (sonst hätte ich früher geantwortet). Tatsache ist, dass es bei mir inzwischen funktioniert, und zwar 3.7.0 und direct_mail 1.1.0. Ich habe aber damals so viel ins Blaue hinein gemacht, weil mir niemand helfen konnte, dass ich nicht sagen kann, woran es letztlich krankte. Tut mir sehr leid!
    Trotzdem: Versucht mal die Extension local zu installieren und falls das nicht geht global. Vielleicht funktioniert nur eins von beidem. Ich würde zuerst mal alle anderen Extensions deinstallieren, die Ihr nicht für direct_mail braucht. Ebenso würde ich alle direct_mail-Versionen wirklich vom Server löschen (nicht nur per Extension Manager ausschalten). Dann neu installieren. Und dazwischen - ganz wichtig - immer wieder alle caches löschen. Sowohl den roten und auch den blauen Knopf. Manchmal passiert es auch (obwohl das nicht sein sollte), dass man mittles FTP zusätzliche caches löschen muss, die vom den Buttons im Backend nicht mehr erreicht werden. Die findet man etwa im Ordner typo3conf.

    Das Problem von dfluess ist ein anderes (HTML-mails kommen sporadisch an im Gegensatz zu keine einzige Massenmail kommt an), bitte schreibe es in einen neuen Thread.
    (Wobei der zweite Teil (Warnung im BE) eventuell auch mit den caches auf dem Server oder einer doppelten direct_mail-Variante zusammenhängt)

    Ich hoffe irgendwas davon hilft!

    das oe

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    23. 01. 2006, 08:32

    @dasoe

    danke für Deine Hinweise. Ich bin mir aber fast sicher, dass ich alle Diese (außer den Cache per FTP zu löschen) schon x mal umgesetzt habe. :-(

    Das mit der doppelt vorhandenen direct-Mail Variante kann zwar sein, denn ich selbst habe eine Form dieser Extension (df-dmailer) erstellt. Aber außer hinzugefügte Datenfelder und eigene XCLASSes, wird kein Einfluss auf andere Module genommen und nach entfernen sollte es damit sowieso keine Probleme oder Konflikte geben, zumal der Fehler anscheinend durch "plugin_mgm" selbst verursacht wird.

    Auch wenn alle anderen nicht relevanten Extension deinstalliert sind, dann ist der Fehler trotzdem nicht weg. Das plugin_mgm selbst habe ich auch schon mehrfach vom Server gelöscht und ganz neu installiert.

    Dem steht entgegen, dass der Fehler aber überhaupt erst nach dem Update auf direct-mail 1.1.0 auftauchte aber - egal was man anstellt - leider nicht mehr verschwindet. Selbst nicht, wenn diese Ext. komplett vom Server gelöscht worden ist!

    Was mit im nachhinein einfällt. Im Extension Info der 1.1.0 steht unten ein Fehler:(Errors: Some tables or fields are missing and of wrong type!) und nach dem update lassen sich einige DB-Felder nicht aktualisieren, werden jedesmal bei einem "Compare" angemeckert. Noch ein Grund, für das downgrade auf die 1.0.8.

    Ich kann das ganze überhaupt nicht nachvollziehen. Dieser Fehler ist hier und auch im typo3.org Forum mehrfach dargestellt. Eine Lösung ist aber nirgends zu finden.

    D.

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    23. 01. 2006, 09:28

    Ich habe hier die Lösung! (Danke an den Support von Mittwaldmedien)

    Anscheinend ist es ein Bug...
    Folgendes wurde geändert, jetzt scheint es zu gehen:

    // Diese Zeile auskommentiert

    1. //$res = $GLOBALS[\'TYPO3_DB\']->exec_SELECTquery(\'*\', \'pages\', \'doktype!=255 AND module IN (\\\'\'.implode(\'\\\',\\\'\',$name).\'\\\') AND\'.$perms_clause.t3lib_BEfunc::deleteClause(\'pages\'));

    // Dafür das hier rein:
    1. $res = $GLOBALS[\'TYPO3_DB\']->exec_SELECTquery(\'*\', \'pages\', \'doktype!=255 AND module IN (\\\'\'.$name.\'\\\') AND\'.$perms_clause.t3lib_BEfunc::deleteClause(\'pages\'));

    Das implode() ist überflüssig, da der String in $name schon eine kommaseparierte Liste ist...
    Aus irgendeinem Grund ging der SOurce aber nicht davon aus...

    Hat schon jemand positive Erfahrungen mit dem Dircet Mail Update auf 1.1.0 gemacht??

  • Alex Alex
    R2-D2
    0 x
    125 Beiträge
    0 Hilfreiche Beiträge
    18. 02. 2006, 20:13

    Danke es klappt:

    ... module IN (\''.$name.'\') AND ...

  • McGregor McGregor
    Jedi-Ratsmitglied
    0 x
    610 Beiträge
    0 Hilfreiche Beiträge
    27. 02. 2006, 16:42

    Hi!

    Könnt mir vielleicht erklären, warum mein Direct_Mail nur ca. 10% der gedachten Mails versendet ???
    Es macht sogar den Anschein, als ob insgesamt nur 5 Mails pro Zyklus rausgehen. Beim ersten Mal ist dann halt noch die Admin-Mail dabei.

    Der Cronjob macht seine Dienste super (minütlich, das selbe bei einer längeren Zeitspanne (2 oder 3 Minuten)) grast er die Mails ab und macht bei meiner Testgruppe (162 Empfänger - alle ich) mit jedem Zyklus 50 Mails weg (so steht's zumindest im Log im Backend).

    Ankommen tun nun nur ca. 10%, also pro Zyklus 5 Mails.
    Woran kann das liegen?
    Liegt das vielleicht an postfix? Kann man dort die Einstellung vornehmen, dass mehr Mails parallel verschickt werden? und wenn ja, wie mach ich das?

    Wenn das Script zu schnell arbeitet, dann kann ich auch ohne Probleme zwischen jedem Aufruf eine kleine Pause (1 Sekunde sollte reichen) setzen, dann haben die nächsten 5 Mails einen anderen Zeitstempel. Blos wo muss ich diese Einstellung vornehmen? In der Funktion runcron() in t3lib_dmailer sehe ich keine Schleife ...

    OK. Das habe ich dann eben getestet (Pause zwischen dem Versand). Funktioniert nicht. Mist.

    Grüße und Danke
    McGregor

  • McGregor McGregor
    Jedi-Ratsmitglied
    0 x
    610 Beiträge
    0 Hilfreiche Beiträge
    01. 03. 2006, 09:59

    Hi!

    Ich habe das Problem gelöst.
    Die Firewall war hauptsächlich Schuld. Sie konnte die Menge an Mails nicht verkraften, die ich versendet habe.
    Deswegen habe ich ein sleep(1) zwischen jedem Mailversand eingebaut.
    Bei meinen 2000 Adressen ist das kein Problem.

    Die Stelle ist im class.t3lib_dmailer.php
    in der Funktion

    1. function dmailer_masssend_list($query_info,$mid,$handle=NULL)

    1. if ($table=='PLAINLIST') {
    2. $sendIdsArr=explode(',',$sendIds);
    3. reset($listArr);
    4. while(list($kval,$recipRow)=each($listArr)) {
    5. $kval++;
    6. if (!in_array($kval,$sendIdsArr)) {
    7. if ($c>=$this->sendPerCycle) {$returnVal = false; break;}
    8. $recipRow['uid']=$kval;
    9. $this->shipOfMail($mid,$recipRow,$tKey);
    10. sleep(1); // HIER SCHLAFEN !!!
    11. $ct++;
    12. $c++;
    13. }
    14. }
    15. } else {
    16. $idList = implode(',',$listArr);
    17. if ($idList) {
    18. $res = // lange DB-Abfrage
    19. if ($GLOBALS['TYPO3_DB']->sql_error()) {die $GLOBALS['TYPO3_DB']->sql_error());}
    20. while($recipRow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
    21. if ($c>=$this->sendPerCycle) {$returnVal = false; break;}
    22. $this->shipOfMail($mid,$recipRow,$tKey);
    23. sleep(1); // HIER SCHLAFEN !!!
    24. $ct++;
    25. $c++;
    26. }
    27. }
    28. }

    Ich hoffe, dass hilft jemanden weiter...

    Grüße
    McGregor

    NACHTRAG:
    Natürlich habe ich meinen Cron-Job so angepasst, dass der Versand sich dadurch nicht überschneidet, d.h. alle 3 Minuten wird der Cronjob angestossen und bei 50 Mails a 1 Sekunde bleibt genügend Zeit bei Verzögerungen beim Versand...

  • dfluess dfluess
    Jedi-General
    0 x
    1296 Beiträge
    1 Hilfreiche Beiträge
    01. 03. 2006, 10:06

    Hallo,

    wenn die Menge an Mails schuld daran ist, warum hast Du denn nicht die Variable "sendPerCycle" verkleinert? Demnach wird doch eh ein Stopp gesetzt.

    D.