Also… ich bin jetzt seit ungefähr 6 Stunden dabei und habe gedacht, es wäre an der Zeit, mich kurz um Hilfe zu bitten.
Ich habe Discourse auf einem Server eingerichtet, den Container gestartet und versucht, mein erstes Admin-Konto zu registrieren.
Das Problem: Ich bekomme die Registrierungs-E-Mail nicht.
Was ich bereits versucht habe:
- Sicherstellen, dass SMTP in den Einstellungen korrekt konfiguriert ist, und Verwendung eines Online-Testtools (SMTP Test Tool), um zu bestätigen, dass diese Einstellungen funktionieren – was sie auch tun. (über diese Website)
DISCOURSE_SMTP_ADDRESS: MY_SMTP_HOST
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: MY_SMTP_USERNAME
DISCOURSE_SMTP_PASSWORD: MY_SMTP_PASSWORD
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, Standard: true)
-
Sicherstellen, dass nur eine E-Mail-Adresse für die initiale Konfiguration von Admin-Konten eingerichtet ist.
-
Überprüfen, ob SSL tatsächlich funktioniert (tut es!)
-
Zwei Mal eine frische Neuinstallation von Ubuntu durchgeführt und den online verfügbaren Einrichtungsleitfaden befolgt.
-
Überprüft, ob keine Netzwerk-Firewalls ausgehende oder eingehende Verbindungen blockieren.
-
Ich konnte erfolgreich per Telnet von dem Server, auf dem Discourse läuft, auf meinen SMTP-Server zugreifen.
-
Die zusätzliche Zeile
- exec: rails r "SiteSetting.notification_email='noreply@MY_WEB_SITE'"
ist am Ende der app.yml korrekt eingerichtet.
Ich weiß im Moment nicht, was ich noch versuchen soll. Vielen Dank.
Wenn Sie discourse-doctor ausführen, wird dann ein offensichtlicher Fehler angezeigt?
cd /var/discourse
./discourse-doctor
Ah ja, das habe ich vergessen zu erwähnen. Einen Moment, ich führe es noch einmal aus, um die Ausgabe zu erhalten, die mir aufgefallen ist.
==================== MAIL TEST ====================
Für einen gründlichen 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) [MEINE_EMAIL]:
Senden der E-Mail an MEINE_EMAIL...
Testen des Sendens an MEINE_EMAIL über smtp.MEIN_SMTP:587.
Verbindung zum SMTP-Server erfolgreich.
Senden an MEINE_EMAIL...
Senden der E-Mail fehlgeschlagen.
Ersetzen: SMTP_PASSWORD
Ersetzen: LETSENCRYPT_ACCOUNT_EMAIL
Ersetzen: DEVELOPER_EMAILS
Ersetzen: DISCOURSE_DB_PASSWORD
Ersetzen: Senden der E-Mail an
==================== FERTIG! ====================
Möchten Sie eine öffentlich zugängliche Version dieser Datei bereitstellen? (Y/n)
Mir ist aufgefallen, dass aus irgendeinem Grund „Senden der E-Mail fehlgeschlagen
Wenn Ihr Passwort versehentlich Sonderzeichen enthält, haben Sie versucht, es in Anführungszeichen zu setzen?
Es war zuvor in Anführungszeichen eingeschlossen, aber ich habe mich an eine Online-Anleitung gehalten, die keine Anführungszeichen verwendete. Ich werde es erneut mit doppelten Anführungszeichen " versuchen.
Wird gerade neu aufgebaut.
Okay, es ist wieder online. Einen Moment bitte.
Gleicher Fehler:
==================== MAIL TEST ====================
Für einen robusten 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) [MEINE_EMAIL]: MEINE_EMAIL
Sende E-Mail an MEINE_EMAIL. . .
Teste das Senden an MEINE_EMAIL über MEINE_SMTP_SERVER:587.
SMTP-Server-Verbindung erfolgreich.
Sende an MEINE_EMAIL. . .
Senden der E-Mail fehlgeschlagen.
Ersetzen: SMTP_PASSWORD
Ersetzen: LETSENCRYPT_ACCOUNT_EMAIL
Ersetzen: DEVELOPER_EMAILS
Ersetzen: DISCOURSE_DB_PASSWORD
Ersetzen: Senden der E-Mail an
==================== FERTIG! ====================
Möchten Sie eine öffentlich zugängliche Version dieser Datei bereitstellen? (Y/n)n
Öffentlich zugängliches Protokoll wurde nicht generiert.
Sie können die Ausgabe dieses Skripts mit folgendem Befehl einsehen:
LESS=-Ri less /tmp/discourse-debug.txt
ABER ZUERST: Stellen Sie sicher, dass Sie die ersten drei Befehle unten kennen!!!
Befehle, die Sie kennen sollten, wenn Sie die Datei mit dem oben genannten Befehl (genannt 'less') ansehen:
q -- Beenden
/error<ENTER> -- Nach dem Wort 'error' suchen
n -- Zur nächsten Vorkommnis suchen
g -- Zum Anfang der Datei gehen
f -- Eine Seite vorwärts gehen
b -- Eine Seite rückwärts gehen
G -- Zum Ende der Datei gehen
Ich habe es mit einem Standardpasswort ohne Sonderzeichen ausprobiert, sowohl mit als auch ohne Anführungszeichen, aber das Ergebnis hat sich nicht geändert.
E-Mail senden fehlgeschlagen.
Ich schlage vor, dass du Mailgun konfigurierst.
Ich werde das jetzt ausprobieren. Danke.
Bevor ich das versuche, werde ich Discourse app.yml doesn't like email password contain "#" - #15 by elijah ausprobieren, indem ich das Passwort in doppelte Anführungszeichen setze, und dann schließlich ein Passwort festlege, das keine Sonderzeichen enthält.
Wenn das nicht funktioniert, werde ich Mailgun konfigurieren. (Als letzten Ausweg, da mein aktueller E-Mail-Server viele E-Mails enthält.)
FORTSCHRITT! Nach der doppelten Anführungszeichen-Umgebung des Passworts wie folgt "'mypass'" trat eine neue Fehlermeldung auf:
==================== MAIL TEST ====================
Für einen robusten 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) [sender_email]: my_email
Senden der E-Mail an my_email. . .
Testen des Sendens an my_email mit my_smtp:587.
======================================== FEHLER ========================================
UNERWARTETER FEHLER
SMTP-AUTH angefordert, aber geheimes Passwort fehlt
====================================== 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!)
=======================================================================================
Ersetzen: SMTP_PASSWORD
Ersetzen: LETSENCRYPT_ACCOUNT_EMAIL
Ersetzen: DEVELOPER_EMAILS
Ersetzen: DISCOURSE_DB_PASSWORD
Ersetzen: Senden der E-Mail an
==================== FERTIG! ====================
Möchten Sie eine öffentlich zugängliche Version dieser Datei bereitstellen? (Y/n)
Das manuelle Senden einer E-Mail über Telnet scheint zu funktionieren, aber nicht, wenn die Discourse-E-Mails verwendet werden. Etwas scheint also nicht in Ordnung zu sein.
In der production.log habe ich folgendes gefunden: Könnte das die Ursache sein?
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Bei weiterer Recherche wurde festgestellt: Job exception: SSL_connect returned=1 errno=0 state=error: dh key too small. Es sieht also so aus, als hätte der Mailserver Probleme mit SSL. Das ist ein Mailgun-Problem.