E-Mail-Versand

  • Hallo,


    beim E-Mail-Versand an Gruppenmitglieder stoße ich gleich auf drei Probleme:


    Es gelingt mir nicht E-Mails über den SMTP-Server von Domainfactory zu versenden (sslout.df.eu, Port 465, Option „SMTP-Verschlüsselung“ deaktiviert). Es kommt keine Fehlermeldung aber auch keine E-Mail. Wenn ich den Empfänger per {$username} ansprechen möchte, wird diese Variable genau so ausgegeben (heißt die evtl. anders?). Umlaute im Betreff werden nicht angezeigt (siehe Screenshot).



    Beste Grüße


    Gerhard

  • Könnte das hier sein: Abarbeitung von Hintergrund-Aufgaben beschleunigen?

    Nach meiner Erfahrung (lokal und Server) kommt es eigentlich nur dann zu solchen Verzögerungen, wenn zuvor ein Mailversand fehlgeschlagen ist, also noch etwas als fehlerhaft in der Queue hängt. Sobald die fehlerhafte Mail beseitigt ist, flutscht es wieder.

    • Official Post

    Hallo,

    Wenn ich den Empfänger per {$username} ansprechen möchte, wird diese Variable genau so ausgegeben (heißt die evtl. anders?).

    Ohne das Dollarzeichen.

    Umlaute im Betreff werden nicht angezeigt (siehe Screenshot).

    Könntest du dir einmal den E-Mail-Quelltext anzeigen und mir zukommen lassen? Alternativ als .eml speichern oder mir als „Anhang weiterleiten“ (duesterhus@woltlab.com). Wie genau das in Outlook geht weiß ich nicht.

    Den Fehler einzugrenzen dürfte jedoch schwierig werden, denn man kann ja dann jedes Mal eine halbe Ewigkeiten warten.

    Das kann man im E-Mail-Quelltext erkennen, wenn du mir eine stark verzögerte SMTP-Mail gibst (siehe Zitat oben), dann schau ich mal rein.

    • Official Post

    Hallo,


    die starke Verzögerung kann ich anhand der Header bestätigen. Ich kopiere mal die relevanten Stellen in zensierter Fassung hier rein:


    Code
    Received: (from u399460@localhost)
        by *snip* (8.14.9/8.13.6/Submit) id *snip*;
        Sun, 25 Dec 2016 21:30:11 +0100
    From: "notification@*snip*" <notification@t*snip*>
    To: *snip*
    Subject: =?utf-8?B?RGFzIFRyYXVtcHJvamVrdCBpc3QgenVyw4PCvGNrIQ==?=
    *snip*
    Date: Sun, 25 Dec 2016 20:00:38 +0000

    Wir sehen, dass die erste Received-Zeile eine halbe Stunde nach dem Erstellen der E-Mail durch die WoltLab Suite liegt („Date“). Aus irgendeinem Grund konnte die E-Mail nicht direkt an den Mailserver übergeben werden. Im Gegensatz zum normalen Betrieb versucht die WoltLab Suite aufgrund der großen Menge an E-Mails im Massenmailer aber direkt zu verschicken, anstatt den Versand asynchron durchzuführen.


    Zum Betreff: Ich kann bestätigen, dass der Betreff kaputt ist, aber nichts weiter dazu sagen. Die E-Mail wurde irgendwo auf dem Weg von der WoltLab Suite in dein Postfach komplett umgeschrieben. Das komplett ist hier an der Stelle wörtlich zu verstehen. Ich tippe auf einen Bug im Mailserver, mit meinem Postfix funktioniert das alles einwandfrei:

  • Das Empfängerpostfach liegt auf einem Exchange 2013. Ich teste das bei Gelegenheit nochmal mit normalen Postfächern. Aber da könnten die Umlaute trotzdem richtig dargestellt werden. ;)


    Aber interessehalber eine Frage: Wenn ich sagen wir mal 50.000 Benutzern per E-Mail kontaktiere, mache ich das tendenziell eher über PHP- oder SMTP-Versand? Bei beiden Möglichkeiten wird man relativ schnell auf diversen Spamlisten landen, oder?

    • Official Post

    Hallo,

    Aber interessehalber eine Frage: Wenn ich sagen wir mal 50.000 Benutzern per E-Mail kontaktiere, mache ich das tendenziell eher über PHP- oder SMTP-Versand? Bei beiden Möglichkeiten wird man relativ schnell auf diversen Spamlisten landen, oder?

    das macht keinen Unterschied: Es wird letztendlich über den gleichen Mailserver verschickt. Der einzige Unterschied ist der Weg, wie die E-Mail in den Mailserver gelangt. Bei „SMTP“ wird die E-Mail regulär über SMTP (Submission) eingeliefert. Bei „PHP“ wird von PHP der „sendmail“-Prozess des Mailservers aufgerufen.

    Ich empfehle grundsätzlich den Versand über SMTP, das liegt aber daran, dass die WoltLab Suite so die volle Kontrolle über den Versand der E-Mails hat. Der Versand über „PHP“ ist in gewissen Punkten PHP-üblich etwas eigenwillig.


    Bei keiner der beiden Methoden landet man bei 50.000 E-Mails auf Spamlisten. Auf Spamlisten landet man wenn man Spam verschickt.


    Edit: Um meinen letzten Satz zu klarifizieren: Ob der empfangende Mailserver die E-Mail dann annimmt ist noch immer diesem überlassen. Es ist sicherlich eine blöde Idee mit einer frischen IP direkt 50k nahezu identische E-Mails zu verschicken.

    • Official Post

    Hallo,

    Hm, ich wollte ja eigentlich den Versand über SMTP verwenden, aber diese Verzögerung dabei irritiert mich etwas.

    wie du an meinem Beispiel sehen kannst ist das kein inhärenter Fehler in der WoltLab Suite, sondern irgendwie im Zusammenspiel mit dem Mailserver. Tritt das Problem beispielsweise bei der Registrierung identisch auf? Was siehst du, wenn du den Debug-Modus aktivierst, eine E-Mail über den Massenmailer schickst und dann in das Fehlerlog schaust? Wenn E-Mails derartig verzögert werden, dann muss bei der ersten Zustellung ein Fehler passiert sein und im Debug-Modus landet der dann auch sofort im Fehlerlog. Ohne Debug-Modus erst, wenn die Zustellung endgültig fehlgeschlagen ist (d.h. es nicht erneut probiert wird).

  • Die folgende Fehlermeldung wird mitgeloggt:


    Requested URL
    /acp/index.php?worker-proxy/&t=0138f7dc992c951d9658d0cd636d0f8efed33cc4
    Referrer
    https://traumprojekt.com/acp/index.php?user-mail/
    Error Message
    Unexpected reply '' from SMTP server.
    Type
    wcf\system\email\transport\exception\TransientFailure
    File (Line)
    /kunden/399460_86561/traumprojekt/www/lib/system/email/transport/SmtpEmailTransport.class.php (154)
    Stacktrace
    1. /kunden/399460_86561/traumprojekt/www/lib/system/email/transport/SmtpEmailTransport.class.php (180): wcf\system\email\transport\SmtpEmailTransport->read(…)
    2. /kunden/399460_86561/traumprojekt/www/lib/system/email/transport/SmtpEmailTransport.class.php (330): wcf\system\email\transport\SmtpEmailTransport->connect(…)
    3. /kunden/399460_86561/traumprojekt/www/lib/system/background/job/EmailDeliveryBackgroundJob.class.php (81): wcf\system\email\transport\SmtpEmailTransport->deliver(…)
    4. /kunden/399460_86561/traumprojekt/www/lib/system/background/BackgroundQueueHandler.class.php (92): wcf\system\background\job\EmailDeliveryBackgroundJob->perform(…)
    5. /kunden/399460_86561/traumprojekt/www/lib/system/worker/MailWorker.class.php (158): wcf\system\background\BackgroundQueueHandler->performJob(…)
    6. /kunden/399460_86561/traumprojekt/www/lib/system/worker/MailWorker.class.php (142): wcf\system\worker\MailWorker->sendMail(…)
    7. /kunden/399460_86561/traumprojekt/www/lib/acp/action/WorkerProxyAction.class.php (92): wcf\system\worker\MailWorker->execute(…)
    8. /kunden/399460_86561/traumprojekt/www/lib/action/AbstractAction.class.php (47): wcf\acp\action\WorkerProxyAction->execute(…)
    9. /kunden/399460_86561/traumprojekt/www/lib/action/AJAXInvokeAction.class.php (63): wcf\action\AbstractAction->__run(…)
    10. /kunden/399460_86561/traumprojekt/www/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    11. /kunden/399460_86561/traumprojekt/www/lib/system/request/RequestHandler.class.php (94): wcf\system\request\Request->execute(…)
    12. /kunden/399460_86561/traumprojekt/www/acp/index.php (9): wcf\system\request\RequestHandler->handle(…)
    • Official Post

    Hallo,


    Greylisting sollte bei Submission eigentlich nicht passieren. Beim Massenmailer funktioniert es so: Es wird er E-Mail-Job erstellt und direkt ausgeführt. Wenn dieser fehlschlägt, dann wird die E-Mail, wie sonst auch, in der Queue abgelegt. Solange der Mailserver also halbwegs zeitnah antwortet, dann läuft PHP nicht in einen Timeout. Früher war die Situation aber noch schlimmer, da ist bei einer fehlgeschlagenen Zustellung das komplett Skript gestorben.


    Es sei aber gesagt, dass man mit dem Massenmailer ohnehin wissen sollte was man tut …

    • Official Post

    Hallo,

    Die folgende Fehlermeldung wird mitgeloggt:

    Geronimo Ich habe gerade aus Gründen noch einmal auf deine Fehlermeldung geschaut. Diese unterscheidet sich doch von der von Udo (ich hatte bei dir nicht richtig hingeschaut):


    Der Unterschied ist, dass bei Udo der Versand nach dem vollständigen Einliefern der E-Mail fehlgeschlagen ist, bei dir verbindet WSC erfolgreich zum Mailserver, die Verbindung bricht aber direkt wieder ab, ohne, dass überhaupt ein Befehl gesendet werden konnte.


    Vielleicht hilft dir das bei der Fehlersuche.