Mails an größer Kontakt-Gruppen

Hallo Zusammen,

als Schule haben wir viele und z.T. auch relativ große Kontakt-Gruppen.
Groß heißt hier 60 - 120 Kontakte.
Nun ist es mehrfach passiert, dass ein paar Empfänger keine Mail erhalten haben.

Wir haben keinen eigenen Mail-Server, sondern nutzen einen externen Provider (Strato) über den wir (außerhalb der Cloud) täglich problemlos Massenmails verschicken (30 - 800 Empfänger).

Unser Server läuft bei uns unter Ubuntu 24.04.
Nextcloud: 29.07
PHP 8.3
MariaDB 11.4.3

Hat da jemand Erfahrungen?

Müssen wir vom phpmailer auf einen MTA, wie sendmail umsatteln?

Gruß
Jason

So, jetzt habe ich aus der nextcloud.log anhand der Zeit und des Users eine Meldung:

[PHP] Fehler: openssl_verify(): Supplied key param cannot be coerced into a public key at /var/www/nextcloud/apps/mail/vendor/phpmailer/dkimvalidator/src/Validator.php#337
	GET /apps/mail/api/messages/13970/dkim

Das hilft mir nur nicht weiter. Aber vielleicht sagt es ja einem von euch etwas.

Gerade fand ich die Meldungen (s.o.) schon wieder in der nextcloud.log und musste einem Lehrer mitteilen, dass wahrscheinlich nicht alle Eltern (einer Klasse, die er angeschrieben hat) seine Mail erhalten haben, dass ich ihm aber weder sagen kann, welche es sind noch, wie viele.
Das ist sehr unangenehm! :woozy_face:
Und das Problem kennt keiner?
Da es in keiner weiteren Log-Datei irgendwelche Meldungen dazu gibt, stehe ich wirklich auf dem Schlauch.

Beschreibe doch mal die Mailconfig.

Und nenne die relevanten Parameter aus der Config.php, ohne sensible Daten natürlich.

Also, occ config:list sagt folgendes:

"system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "domain.net",
            "secondclaudi",
            "secondshadow"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "29.0.7.1",
        "overwrite.cli.url": "https:\/\/domain.net",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "skeletondirectory": "\/data\/config\/skeleton",
        "templatedirectory": "\/data\/config\/vorlagen",
        "default_language": "de",
        "default_locale": "de_DE",
        "default_phone_region": "DE",
        "overwriteprotocol": "https",
        "logtimezone": "Europe\/Berlin",
        "auth.bruteforce.protection.enabled": false,
        "session_lifetime": 3600,
        "auto_logout": true,
        "remember_login_cookie_lifetime": 0,
        "maintenance_window_start": 1,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "filelocking.enabled": true,
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 0
        },
        "loglevel": 2,
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpsecure": "ssl",
        "mail_smtpauth": 1,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "trashbin_retention_obligation": "360, 720",
        "versions_retention_obligation": "360, 720",
        "maintenance": false
    },

Vielleicht sollte ich noch dazu sagen, dass die meisten Mails ja versendet werden. Es scheint aber so zu sein, dass je größer die Kontakt-Gruppe ist, desto wahrscheinlicher ist es, dass ein paar Empfänger keine Mail bekommen. Und dies scheinen auch nicht immer die gleichen zu sein.

Setz nächste Woche nach dem Release von 30.0.1 mal eine Testinstanz auf und spiele ein Testszenario nach. Vielleicht ist es ein Bug, der in Hub 9 nicht mehr existiert. Wobei es sicherlich größere Gruppen gibt.

Was auch sein kann, dass den Mailanbieter das Massensenden begrenzt. Da würde ich auch mal einen anderen SMTP testen.

Ich selbst nutze kein NC-Mail und kann daher nicht sagen, ob es überhaupt möglich ist (und wie einfach/kompliziert das ist), auf sendmail umzusteigen. Wenn es mit wenigen Handgriffen geht, dann probier es doch einfach mal

Laut Doku geht es. Aber sendmail und wenige Handgriffe sind zwei Sachen, die einfach nicht zusammen passen. :crazy_face: Sonst hätte ich schon längst umgestellt. :wink:

Wir verschicken über den gleichen smtp-Anbieter z.B. per Outlook regelmäßig an über 250 Empfänger und da hat es nie Probleme gegeben.
Mich irritiert auch die Meldung in der nextcloud.log. Was mag DKIM damit zu tun haben? Timeout?

ist das “enabled” auf beiden Seiten? oder disabled, ebenfalls beiderseits?

Gute Frage: Bei allen ernstzunehmenden Anbietern sollte DKIM schon lange zum Standard gehören.
Außerdem haben wir schon Empfänger identifiziert, die mal eine Mail bekommen haben und mal nicht. Leider sehe ich als Admin nicht, wer keine bekommen hat. Diese Feststellung geschieht i.d.R. (eher durch Zufall) im Gespräch (“Hast du die Mail den nicht gelesen, die wir alle bekommen haben …”).

klares ja.
Dennoch, schau einfach mal nach:

Setzen eines DKIM Eintrags im STRATO Kunden-Login

Loggen Sie sich in Ihren STRATO Kunden-Login ein und öffnen Sie die Domainverwaltung. Gehen Sie dann bei der betreffenden Domain auf das Zahnrädchen.

Klicken Sie auf den Menüpunkt DNS und im Anschluss auf TXT-Record inklusive SPF und DKIM Einstellungen auf verwalten.

Hier können Sie die DKIM Einstellungen vornehmen.

Da war ich wegen DMARC gerade neulich drin. Dort ist es gesetzt.

1 Like

Es muss es nicht unbedingt Sendmail sein. Zumindest unter Debian und Ubuntu wird bei der Installation von Postfix oder Exim ein Sendmail-Kommando mitinstalliert, das genau wie das Original verwendet werden kann, d.h. man kann Postfix oder Exim als Drop-in Replacement für Sendmail installieren, ohne dass im OS, Nextcloud oder anderen Anwendungen, die darüber Mails versenden wollen, irgendetwas angepasst oder speziell konfiguriert werden muss.

Bei anderen, einfacheren MTAs/Mailforwardern wie msmtp oder Nullmailer kann es sein, dass es nicht “out of the box” funktioniert, hier muss ggf. manuell ein Symlink oder Alias auf das entsprechende Kommando, gesetzt werden.

Leider koche ich gerade auf so vielen Flammen und hatte gehofft es aufschieben zu können. Aber dann werde ich wohl doch auf (irgend)einen MTA umsatteln müssen.

Also ich denke nicht, dass es zwingend einen Unterschied machen würde bei der Zustellbarkeit der Mails, oder einen machen sollte. Ich wollte einfach nur erwähnen, dass sendmail, in diesem Zusammenhang nicht zwingend Sendmail bedeuten muss.

Wenn du einen MTA als Mail Forwarder für eine Strato Adresse einrichtest, denn macht der ja am Ende des Tages auch nichts anderes als der PHP Mailer von Nextcloud, sprich er meldet sich bei Strato über das entsprechende Mailkonto an, und sendet die Email dann über den SMTP Server von Strato. Und den MTA nutzen, um die Emails direkt an externe Emailadressen zu senden, würde ich nicht empfehlen, weil dann werden 90% der Mails garantiert nicht ankommen.

Oder mal ganz dumm gefragt? Warum denkst, du dass es an der Nextcloud liegt? Was sagt das Log bei den Emails, die nicht angekommen sind?

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html#enabling-debug-mode

Vielleicht ist der Timeout-Wert für SMTP zu niedrig:

config.php:

"mail_smtptimeout"  => 30,

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html#smtp

1 Like

Ne, klar. Wenn dann hätte ich Strato als Smarthost genutzt und tatsächlich würde eine MTA dann nicht anderes machen als der phphmailer - nur eben hoffentlich ohne Fehler oder wenigstens einer Log-Datei, in der man sieht, welche Mail nicht rausgegangen ist.
Ich sehe in keiner Log-Datei auch nur irgendetwas (außer dieser oben genannten DKIM-Meldung) und deshalb habe ich auf den phpmailer getippt und gedacht, dass der vielleicht bei gewissen Mengen Probleme bekommen könnte.
Ich habe früher mehrfach MTAs aufgesetzt. Und weiß deshalb, dass deren “Geduld” (sprich Queues) sehr groß sind. Die speichern auf der Platte zwischen und probieren es einfach immer wieder. Und den phpmailer kenne ich da zu wenig. Deshalb ja auch meine Frage hier ins Forum. (Natürlich in der Hoffnung, dass die Probleme bekannt sind.) Ganz ehrlich: Ich hatte fast damit gerechnet, dass jemand etwas schreibt, wie: “Der phphmail ist ok, aber nicht für Mengen, da musst du besser einen MTA nehmen.”

Vielleicht ist der Timeout-Wert für SMTP zu niedrig:

Das klingt nach einer Idee! :smiley: Das werde ich sofort ausprobieren. Allerdings muss ich warten, bis irgendein Lehrer sich wieder traut ein Mail an Eltern zu schicken … :face_with_diagonal_mouth:

Habe meinen Post in der Zwischenzeit nochmal editiert, und noch einen Link hinzugefügt zum Troubleshooting-Abschnitt in der Doku, wo beschrieben ist, wie du den Log Level auf “Debug” setzten kannst, um detailiertere Logs zu erhalten.

Kann sein, habe aber keine Erfahrung, ob es da irgendwelche Grenzen gibt und wenn ja, wo diese liegen.

Ansonsten hat ein MTA/Forwarder auf Systemebene natürlich den Vorteil, dass du neben den Benachrichtigungen von Nextcloud auch Systembenachrichtigungen darüber verschicken kannst. Einen solchen zu installieren kann also auch unabhängig von deinem Problem Sinn machen.