System eMail und occ defekt nach upgrade auf 30.0.4 (docker)

Hallo Forum,
wünsche einen guten Start ins neue Jahr. Wie im Titel beschrieben habe ich seit dem Upgrade auf NC 30.0.4 (als Commnity docker Image) Probleme mit occ und der System eMail Einrichtung. Das Upgrade erfolgte von NC 28 über NC 29 nach NC 30.

Hier erstmal die Eckdaten meines Systems:

  • selfhosted auf PC unter debian 11.11 als Community docker image
  • Nextcloud Version: 30.0.4 (in docker)
  • PHP Version: PHP 8.2.27 (in docker)
  • MariaDB 10.5.26-MariaDB-0+deb11u2 Debian 11 (auf host System)
  • Apache version 2.4.62 (als reverse proxy)

Sobald ich occ starten will, z. B. mit dem Befehl
docker exec -i --user www-data nextcloud php occ
bekomme ich folgende Exception und occ ist nicht benutzbar:

An unhandled exception has been thrown:
TypeError: Cannot assign array to property Egulias\EmailValidator\EmailLexer::$current of type Doctrine\Common\Lexer\Token in /var/www/html/3rdparty/egulias/email-validator/src/EmailLexer.php:211
Stack trace:
#0 /var/www/html/3rdparty/egulias/email-validator/src/Parser.php(74): Egulias\EmailValidator\EmailLexer->moveNext()
#1 /var/www/html/3rdparty/egulias/email-validator/src/EmailParser.php(38): Egulias\EmailValidator\Parser->hasAtToken()
#2 /var/www/html/3rdparty/egulias/email-validator/src/Parser.php(43): Egulias\EmailValidator\EmailParser->preLeftParsing()
#3 /var/www/html/3rdparty/egulias/email-validator/src/EmailParser.php(29): Egulias\EmailValidator\Parser->parse('no-reply@cloud....')
#4 /var/www/html/3rdparty/egulias/email-validator/src/Validation/RFCValidation.php(27): Egulias\EmailValidator\EmailParser->parse('no-reply@cloud....')
#5 /var/www/html/3rdparty/egulias/email-validator/src/Validation/NoRFCWarningsValidation.php(21): Egulias\EmailValidator\Validation\RFCValidation->isValid('no-reply@cloud....', Object(Egulias\EmailValidator\EmailLexer))
#6 /var/www/html/3rdparty/egulias/email-validator/src/EmailValidator.php(37): Egulias\EmailValidator\Validation\NoRFCWarningsValidation->isValid('no-reply@cloud....', Object(Egulias\EmailValidator\EmailLexer))
#7 /var/www/html/lib/private/Mail/Mailer.php(250): Egulias\EmailValidator\EmailValidator->isValid('no-reply@cloud....', Object(Egulias\EmailValidator\Validation\NoRFCWarningsValidation))
#8 /var/www/html/lib/public/Util.php(308): OC\Mail\Mailer->validateMailAddress('no-reply@cloud....')
#9 /var/www/html/apps/settings/lib/AppInfo/Application.php(166): OCP\Util::getDefaultEmailAddress('no-reply')
#10 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(153): OCA\Settings\AppInfo\Application->OCA\Settings\AppInfo\{closure}(Object(OC\AppFramework\DependencyInjection\DIContainer))
#11 /var/www/html/3rdparty/pimple/pimple/src/Pimple/Container.php(122): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#12 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(120): Pimple\Container->offsetGet('OCA\\Settings\\Ma...')
#13 /var/www/html/lib/private/AppFramework/DependencyInjection/DIContainer.php(445): OC\AppFramework\Utility\SimpleContainer->query('OCA\\Settings\\Ma...')
#14 /var/www/html/lib/private/ServerContainer.php(137): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback('OCA\\Settings\\Ma...')
#15 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(74): OC\ServerContainer->query('OCA\\Settings\\Ma...', true)
#16 [internal function]: OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(ReflectionParameter))
#17 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(61): array_map(Object(Closure), Array)
#18 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(106): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#19 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(124): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Core\\Command...')
#20 /var/www/html/lib/private/ServerContainer.php(155): OC\AppFramework\Utility\SimpleContainer->query('OC\\Core\\Command...', true)
#21 /var/www/html/lib/private/AppFramework/Utility/SimpleContainer.php(42): OC\ServerContainer->query('OC\\Core\\Command...')
#22 /var/www/html/lib/public/Server.php(39): OC\AppFramework\Utility\SimpleContainer->get('OC\\Core\\Command...')
#23 /var/www/html/core/register_command.php(109): OCP\Server::get('OC\\Core\\Command...')
#24 /var/www/html/lib/private/Console/Application.php(77): require_once('/var/www/html/c...')
#25 /var/www/html/console.php(81): OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /var/www/html/occ(11): require_once('/var/www/html/c...')
#27 {main}

Da der Fehler offensichtlich irgendetwas mit eMail zu tun hat, denke ich, dass mein 2. Problem damit zusammenhängt: Ich kann als Admin zwar meine SMTP-Daten über das Webinterface eingeben und bekomme auch die Rückmeldung “Gespeichert”, allerdings wenn ich dann auf Test E-Mail senden klicke, steht nur “Senden” auf rotem Untergrund und es passiert nichts weiter.

Für jegliche Ideen bzgl. Fehlersuche und -behebung bin ich sehr dankbar.

Viele Grüße
Rainer

Da Du ja Dein System von recht alten Versionen hochgezogen hast, dann hätte ich eventuell noch eine Idee. Schau bitte vorsichtshalber in Deiner E-Mail-Konfiguration nach, ob dort noch sehr alte Einträge vorhanden sind.

Siehe dazu meinen älteren Beitrag vom September 2023 an.

Für das neue Jahr auch von mir die besten Wünsche.
Gruß Crashandy

1 Like

Die Idee mit der separaten Config Datei für eMails ist super. Das habe ich übernommen. Aber leider ändert es nichts :face_with_raised_eyebrow:

Bei der Überprüfung über die Oberfläche bleibt das rote “Senden” Kästchen einfach stehen und es tut sich nichts weiter. Kein Fehler, kein gar nichts.
Ein Neustart des Docker-Containers brachte auch keinen Erfolg.

Auch ein Eintrag mit einem normalen GMX-Account (vorher wollte ich mit meiner eigenen Domain arbeiten) bringt genau das gleiche Ergebnis, als mail_from_address habe ich auch schon die komplette Adresse eingetragen.

Die Fehlermeldung im nextcloud.log ist identisch zu der, wenn ich versuche occ aufzurufen.

Meine email.config.php sieht mit gmx so aus:

<?php
$CONFIG = [
  'mail_domain' => 'gmx.de',
  'mail_from_address' => 'mein.name',
  'mail_smtpmode' => 'smtp',
  'mail_smtphost' => 'mail.gmx.net',
  'mail_smtpport' => '587',
  'mail_smtpsecure' => '',
  'mail_smtpauth' => true,
  'mail_smtpname' => 'mein.name@gmx.de',
  'mail_smtppassword' => 'supersicherespasswort1234',
  'mail_smtptimeout'  => 20,
];

Langsam bin ich echt ratlos.

ich kann bei GMX nicht mitreden, mein Docker sendet fleissig mails seit Jahren über einen lokalen Provider…

Ich sehe aber dass bei mir folgender Wert gestzt ist und bei dir leer…

"mail_smtpsecure": "ssl",

ich würde ssl ausprobieren (und evtl ports anpassen).

Steht in einem Programm “STARTTLS” nicht zur Verfügung, nutzen Sie bitte das Protokoll “TLS”.<…> Alternativ können Sie für den Postausgangsserver auch Port 465 mit der Verschlüsselung “SSL” nutzen.

weiter würde ich schauen ob zB 2-factor (mfa) im GMX account aktiviert ist was grundsätzlich sehr empfehlenswert ist… benötigt aber für nicht-interaktive Applikationen -sprich Server - ein spezifisches Passwort (suche app Passwort, Gerätepasswort, Device Password etc…)

Daran liegt es leider nicht. Hatte GMX jetzt nur mal provisorisch ausprobiert, ob es daran liegen könnte, hatte vorher auch schon mal mit ssl und anderem Port sowie anderen Providern getestet.
Ich vermute eher, dass es noch irgendwelche alten Abhängigkeiten oder Fehleinstellung gibt, so dass das 3rd party Modul emailvalidator nicht richtig arbeiten kann.
Falls es “nur” an falschen eMail-Einstellungen liegen sollte, müsste ich zumindest einen smtp Fehler bekommen und occ sollte auch funktionieren.
Trotzdem Danke für’s Ideen beisteuern.
Ich versuche mal, das Modul auf github zu finden und dort meine Frage loszuwerden.

Hallo zusammen.
Nach einer langen Versuchsreihe und einem Bug Report in Github unter nextcloud server habe ich endlich mein Problem lösen können:

Es lag (leider) an der App twofactor-gateway, die spätestens mit Nextcloud 30 nicht mehr kompatibel ist und o. g. Fehler verursacht hat. Nach Entfernung der App und Neustart des docker Containers funktioniert sowohl occ wieder einwandfrei als auch meine eMail Konfiguration.

Vielleicht noch als Tipp für vergleichbare Fälle: In der config.php mal nach dem Eintrag app_install_overwrite suchen. Das sind Apps, deren Start erzwungen wurde (force enabled). Dort überprüfen, ob sie noch gebraucht werden, nachlesen, ob sie mit der aktuellen Nextcloud Version noch kompatibel sind und ggf. entfernen.

Vielen Dank an alle, die versucht haben, mir zu helfen und viel Glück denjenigen, die diese Lösung hier vielleicht brauchen können.

2 Likes

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.