Emails vom System werden verspätet versendet

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Guten abend,


    ich bin mir gerade nicht sicher, ob dieser Fehler mein verschulden ist, oder ob das überhaupt ein Fehler ist.


    Ich habe einen neuen Mailserver (mailcow) auf einem externen Server eingerichtet und stehe nun vor dem Problem, dass automatische Emails vom Forum (Accountaktivierung, Passwort-vergessen, usw.) sehr zeitverzögert ausgeführt werden. Ich konnte leider nicht herausfinden, wie lang diese Verzögerung ist, da sie sehr stark variiert.

    In Verwaltung -> E-Mails werden diese auch als "wartend" angezeigt.


    Ich vermute, dass dieses Problem an WoltLab liegt, da ich ohne weitere Probleme Emails an einzelne Benutzer verschicken kann.

    Benutzer -> E-Mail senden
    Diese erscheinen auch ohne Verzögerung und ohne Probleme, weshalb ich davon ausgehen kann, dass die Konfiguration vom Mailserver sowie die SMTP Einstellungen in WoltLab passen.


    Vielleicht hatte ja jemand bereits so ein Problem und weiß die perfekte Lösung, vielleicht hab ich auch einfach etwas übersehen :saint:

  • Das liegt wahrscheinlich dadran, dass die Cronjobs nur ausgeführt werden, wenn Seitenbesuch herscht und auch damit nur Mails versendet werden. Es sind keine "echten" Cronjobs, sondern werden nur ausgeführt, wenn diese überfallig sind bei Seitenaufruf.

    Man kann das z.B. mittels External Cronjob Execution API von gn5VmUKCtv6ekrMf auf echte Cronjobs umlegen:

    External Cronjob Execution API - MysteryCode

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • E-Mails werden bewusst von der Software zeitverzögert versendet. Durch aufrufen der URL /index.php?background-queue-perform kannst du den Versand wartender E-Mails anstoßen. Du siehst dann auch, wie viele noch in der Warteschlange sind.

  • E-Mails werden bewusst von der Software zeitverzögert versendet

    Stimmt, das war auch.

    „If you can only do one thing, hone it to perfection. Hone it to the utmost limit!“ – Zenitsu Agatsuma

  • E-Mails werden bewusst von der Software zeitverzögert versendet.

    Aber würde das nicht Probleme verursachen, wenn ein User zum Beispiel 2FA über E-Mail angelegt hat und die E-Mail dann ewig braucht? Der Code müsste dann doch abgelaufen sein?

  • Aber würde das nicht Probleme verursachen, wenn ein User zum Beispiel 2FA über E-Mail angelegt hat und die E-Mail dann ewig braucht? Der Code müsste dann doch abgelaufen sein?


    Ich weiß nicht, wann die Codes per E-Mail ablaufen, aber ich denke nicht, dass das ein Problem ist. Allerdings kannst du natürlich per Cron minütlich einen Aufruf der URL durchführen lassen, dann bist du auf der sicheren Seite.

    • Official Post

    Hallo,

    E-Mails werden bewusst von der Software zeitverzögert versendet.

    Zeitverzögert ist das falsche Wort, weil es impliziert, dass die Verzögerung gewollt ist. Korrekt wäre die Bezeichnung "asynchron".


    Wir setzen aber beim Versand von E-Mails ein Session-Flag, das dazu führen sollte, dass die Background Queue beim nächsten Seitenaufruf in jedem Fall geprüft wird. Wenn sich da nicht super viel angestaut hat, dann sollte die entsprechende E-Mail auch praktisch sofort rausgehen.

    Aber würde das nicht Probleme verursachen, wenn ein User zum Beispiel 2FA über E-Mail angelegt hat und die E-Mail dann ewig braucht?

    Die E-Mails der Mehrfaktor-Authentifizierung über E-Mail-Codes gehen aus diesem Grunde bewusst nicht durch die Background-Queue, sondern werden synchron versendet.

  • Ich würde mich gern mal einklinken zu diesem Thema. Ich bin der einzige bei uns der neue Konversationen oder antworten auf Konversationen per Mail eingestellt hat. Auch ich habe festgestellt das die Mails sehr Zeitverzögert ankommen ... will heißen ich sehe im ACP wartend obwohl schon mehrmals die Seite aufgerufen wurde. Sollte ja eigentlich funktionieren :/


    Ich werde jetzt mal den Tipp von SoftCreatR probieren als Cronjob index.php?background-queue-perform ausführen zu lassen. Vielleicht klappt es ja

  • Moin Moin!


    Ich habe das Problem auch, 2 Mails hängen seit 15 Min. als "wartend", nicht passiert. Das Board habe ich frisch installiert, das Problem besteht seit Anfang an. Wie lange dauert es denn bis das Board die Mails versendet?

  • Die Mails werden asynchron versendet wenn benutzer deine Seite aufrufen.

    Zudem muss der Wartungsmodus deaktiviert sein.


    Wenn du dann durch deine Seite gehst und verschiedene Seiten aufrufst werden im Hintergrund auch die Mails versendet.

  • Ähm, ok, also die Mails gehe nur raus wenn Aktivität im Forum herrscht? Warum?

    So viel Verkehr habe ich im Forum nun noch nicht. Verstehe den Sinn dahinter nicht so ganz.

    Macht es Sinn einen Cronjob auf index.php?background-queue-perform zu setzen, damit das Problem behoben ist?

  • Warum?


    Wie sonst sollen z.B. Cronjobs ausgeführt werden, wenn keine echten Cronjobs zum Einsatz kommen?



    https://github.com/MysteryCode/de.mysterycode.wcf.cron/releases/download/1.1.3/de.mysterycode.wcf.cron_1.1.3_20220615_081409.tgz

    • Official Post

    Hallo,

    Ähm, ok, also die Mails gehe nur raus wenn Aktivität im Forum herrscht? Warum?

    die Schlange für Hintergrundaufgaben wird auch durch Suchmaschinen und Gäste angestoßen. Es reicht also auch ein wenig Aktivität, damit E-Mails einigermaßen zuverlässig versendet werden. Bei nur wenig Aktivität, werden auch nur wenige E-Mails erzeugt und bei mehr Aktivität, löst sich das Problem von allein.

  • Hallo,

    die Schlange für Hintergrundaufgaben wird auch durch Suchmaschinen und Gäste angestoßen. Es reicht also auch ein wenig Aktivität, damit E-Mails einigermaßen zuverlässig versendet werden. Bei nur wenig Aktivität, werden auch nur wenige E-Mails erzeugt und bei mehr Aktivität, löst sich das Problem von allein.

    Das verstehe ich nun, vielen Dank! Aber es ist kein Problem wenn ich einen Cronjob auf index.php?background-queue-perform ansetze, oder?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!