Admin-Aktivierungs-E-Mail wird bei frischer selbst gehosteter Installation nicht gesendet (Ubuntu 20.04)

Hallo Community,

ich betreibe seit etwa einem Jahr eine gut funktionierende, selbst gehostete Discourse-Installation auf einem VPS mit Ubuntu 18.04. Da das Forum gewachsen ist, habe ich begonnen, mich auf den Wechsel zu einem leistungsfähigeren VPS vorzubereiten. Dafür habe ich ein minimales Ubuntu 20.04-Image verwendet, einige typische Härtungsmaßnahmen angewendet und Discourse Docker gemäß dem 30-Minuten-Installationsleitfaden installiert. Ich habe exakt die gleichen Werte verwendet wie bei der gut funktionierenden Installation. Aber: Die Aktivierungs-E-Mail wird nicht gesendet. Der Leitfaden Fehlerbehebung bei E-Mails auf einer neuen Discourse-Installation hat nicht geholfen – ich kann mich zwar per Telnet verbinden, erhalte jedoch beim Ausführen von ./discourse-doctor folgenden Fehler:

>==================== MAIL TEST ====================
Für einen zuverlässigen Test holen Sie sich eine Adresse unter http //www mail-tester com/
Oder senden Sie einfach eine Testnachricht an sich selbst.
E-Mail-Adresse für den Mail-Test? ('n' zum Überspringen) [anonymisiert]: test-9ymkghbvc@srv1 mail-tester com
Senden der E-Mail an test-9ymkghbvc@srv1.mail-tester com. . .
Testen des Versands an test-9ymkghbvc@srv1.mail-tester com über smtp mailbox org:587.
==================== FEHLER ======================
                                    UNERWARTETER FEHLER
>
>503 5.5.1 Fehler: Authentifizierung nicht aktiviert
>
>
>================== LÖSUNG =====================
>Dies ist kein häufiger Fehler. Es gibt keine empfohlene Lösung!
>
>Bitte melden Sie die genaue Fehlermeldung oben unter https //meta discourse org/
(Und eine Lösung, falls Sie eine finden!)
=================================================

(Ich musste einige Teile der URLs oben entfernen, um sie hier posten zu können.)

Seltsamerweise erhalte ich denselben Fehler, wenn ich ./discourse-doctor auch auf meinem gut funktionierenden VPS ausführe. Daher weiß ich nicht, ob der Fehler relevant ist.
Wie Sie sehen, verwende ich mailbox.org als E-Mail-Anbieter, was sehr gut funktioniert und eine hervorragende Wahl in Bezug auf Datenschutz und eine robuste E-Mail-Infrastruktur ist. Ich habe Host und Port überprüft und verwende diese seit Jahren sowohl in Thunderbird als auch in der anderen Discourse-Installation.

Irgendwelche Ideen? Der einzige Unterschied, den ich zwischen beiden VPS sehe, ist, dass der funktionierende VPS Ubuntu 18.08 ausführt, während das Problem auf dem VPS mit Ubuntu 20.04 auftritt.

Vielen Dank, cazee

Während Ihrer Härtung haben Sie versehentlich Port 587 blockiert?

Ist ein Tippfehler in Ihrer yaml.app-Datei?

smtp mailbox org:587

Sollte das nicht

smtp.mailbox org:587

heißen? Beachten Sie den Punkt.

Danke für eure Ideen.

Port 587 ist geöffnet, ich kann wie im Troubleshooting-Guide beschrieben per Telnet eine Verbindung zum SMTP-Server herstellen.
Außerdem habe ich es mit deaktiviertem ufw getestet – das Ergebnis ist dasselbe.

Kein Tippfehler in der YAML-Datei – diese Punkte habe ich absichtlich in meinem Beitrag entfernt (neues Forumskonto – nur 2 URLs pro Beitrag erlaubt).

Was kann ich noch überprüfen oder tun?

Poste Code als ordentliche Codeblöcke, deshalb bist du auf die Probleme gestoßen, die du hattest.

Ich konnte dieses Problem endlich lösen.

Der Grund war die Absender-E-Mail-Adresse, die Discourse standardmäßig verwendet. Sie wird aus dem Hostnamen gebildet, der bei der Einrichtung eingegeben wurde (in meinem Fall so etwas wie v220200xxxxxxxxxxxx.powersrv.de), was zur Absenderadresse noreply@v220200xxxxxxxxxxxx.powersrv.de führt, die vom SMTP-Server abgelehnt wird.

Warum verwende ich also diesen unfreundlichen Hostnamen? Einfach weil der Server den bestehenden ersetzen soll, der für unsere gewachsene Discourse-Community zu klein geworden ist. Ich bereite den neuen Server vor und teste ihn, bevor ich später die DNS-Einstellungen ändere, um auf diesen neuen Server zu verweisen. Ich wollte mir die Zeit sparen, hier temporäre freundliche DNS-Einstellungen zu erstellen.

Wie lässt sich das Problem beheben?
Suchen Sie am Ende Ihrer app.yml nach diesen Zeilen:

## Wenn Sie die E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, entfernen Sie das Kommentarzeichen und ändern Sie:
## Nachdem Sie die erste Anmelde-E-Mail erhalten haben, kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.

Entfernen Sie das Kommentarzeichen bei der letzten Zeile und passen Sie sie an eine Adresse an, die Ihr SMTP-Server als gültigen Absender akzeptiert, z.
- exec: rails r "SiteSetting.notification_email='USER@DOMAIN.TLD'"

Führen Sie nun ./launcher rebuild app aus, damit die Änderungen wirksam werden, und voilà – jetzt wird die Aktivierungs-E-Mail gesendet, und Sie können das Admin-Konto aktivieren und die Einrichtung abschließen.

Wie bin ich darauf gekommen?
Ich habe ein neues E-Mail-Konto bei meinem Webspace-Provider erstellt und Discourse erneut mit diesen SMTP-Anmeldedaten eingerichtet – und wie erwartet die Aktivierungs-E-Mail erhalten. Damit wusste ich, dass es sich um die SMTP-Einstellungen handeln musste (und nicht um andere Dinge im Zusammenhang mit Ubuntu / Docker / Discourse-Einrichtung).
Nachdem ich das Admin-Konto mit diesem anderen SMTP-Server aktiviert hatte, ging ich zu Einstellungen > E-Mail > übersprungen und fand die fehlgeschlagenen Versuche, die Aktivierungs-E-Mail zu senden: 553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>: Absenderadresse abgelehnt: gehört nicht dem Benutzer USER@DOMAIN.TLD

Fazit
Ich möchte die Aufmerksamkeit des Discourse-Entwicklungsteams auf die Feature-Anfrage Vorschlag – optionale System-E-Mail-Absender-Einstellung während der Einrichtung zulassen lenken. Bitte berücksichtigen Sie Testinstallationen (z. B. als Kopie, um einige Tests vor dem tatsächlichen Upgrade einer Instanz durchzuführen), die keine freundliche Hostadresse haben. Es wäre viel reibungsloser, diese ohne Eingriffe in die app.yaml einzurichten. Außerdem ist es meiner Meinung nach gut, dem Administrator die Wahl zu geben, E-Mail-Adressen zu verwenden, die nicht an den Discourse-Hostnamen gebunden sind.

Danke :slight_smile:

Auch danke an @codinghorror dafür, dass er mich darauf hingewiesen hat, wie man Code-Blöcke postet.

Ich arbeite an einer Änderung für discourse-setup, die erfordert, dass du während des Einrichtungsprozesses die notification_email festlegst. Dies sollte zukünftig Probleme wie deine lösen.

Dies wurde jetzt zusammengeführt und wird bei neuen Installationen abgefragt!