Der folgende Bericht wurde mir von ChatGPT erstellt, basierend auf meiner tatsächlichen Erfahrung bei der Installation von Discourse (da ich selbst nicht sehr technikaffin bin, verlasse ich mich bei schwierigen Aufgaben auf KI). Ich benötige im Moment keine Hilfe, hoffe aber, dass der Bericht nützliche Rückmeldungen zu 3.5.0.beta2-dev liefert.
==================
Sehr geehrtes Discourse-Team,
ich möchte einige Fehlerbehebungsdetails zu E-Mail-Problemen mitteilen, auf die ich bei der Ausführung von Discourse 3.5.0.beta2-dev gestoßen bin. Ich benötige keine direkte Unterstützung, da ich mich entschieden habe, auf 3.4.0.beta4-dev zurückzukehren, aber ich hoffe, dieser Bericht ist nützlich, um potenzielle Probleme mit der neuesten Entwicklungsversion zu identifizieren.
1. Problemzusammenfassung
Ich habe eine Neuinstallation von Discourse auf einer neuen Vultr-Instanz durchgeführt und dabei den SMTP-Dienst von 20i (smtp.stackmail.com) verwendet. E-Mails wurden jedoch nie zugestellt, trotz:
- Einem erfolgreichen SMTP-Konnektivitätstest (
openssl s_client -connect smtp.stackmail.com:587 -starttls smtp). - Keinerlei Fehlern in den Mail-Protokollen von 20i (was darauf hindeutet, dass Discourse die E-Mails nicht tatsächlich gesendet hat).
- Sidekiq konnte keine E-Mail-Jobs verarbeiten.
Dies war unerwartet, da ich vor einigen Wochen Discourse 3.4.0.beta4-dev auf einer identischen Instanz ohne E-Mail-Probleme erfolgreich installiert hatte.
Nach gründlicher Fehlerbehebung stellte ich fest, dass meine aktuelle Installation unerwartet Discourse 3.5.0.beta2-dev installiert hatte, was wahrscheinlich zu den Problemen beitrug.
2. Identifizierte Hauptprobleme
A. E-Mails wurden nicht zugestellt
- Die SMTP-Einstellungen waren korrekt, verifiziert durch manuelle Tests (Tests mit
swaksundopensslwaren erfolgreich). - E-Mails wurden in Sidekiq eingereiht, aber nie empfangen.
- Die Mail-Protokolle von 20i zeigten keine Ablehnung oder Zustellversuche (was darauf hindeutet, dass die Nachrichten Discourse nie verlassen haben).
- In
production.logwurden keine E-Mail-bezogenen Fehler angezeigt (grep "smtp"lieferte keine Ergebnisse).
B. Sidekiq- und Redis-Probleme
- Anfänglich lief Sidekiq nicht (
Sidekiq::Workers.new.sizegab0zurück). - Das manuelle Neustarten von Sidekiq (
sv restart sidekiq) schlug fehl, da Sidekiq als Dienst fehlte. - Redis lief (
redis-cli pinggabPONGzurück), aber Discourse-Protokolle zeigten immer noch Redis-Verbindungsfehler (Errno::ECONNREFUSED). - Sidekiq-Protokolle zeigten Job-Fehler aufgrund von Redis-Verbindungsproblemen, obwohl Redis als aktiv bestätigt wurde.
- Das manuelle Starten von Sidekiq (
bundle exec sidekiq) ermöglichte die Verarbeitung von Jobs, aber E-Mails wurden immer noch nicht gesendet.
C. Versionskonflikt zwischen den Installationen
- Meine vorherige Installation (die funktionierte) war auf 3.4.0.beta4-dev.
- Meine aktuelle Installation installierte unerwartet 3.5.0.beta2-dev, obwohl dieselbe Einrichtungsmethode verwendet wurde.
- Da E-Mails in 3.4.0.beta4-dev perfekt funktionierten, vermute ich eine Regression oder eine Breaking Change in 3.5.
3. Ergriffene Maßnahmen (Alle fehlgeschlagen)
Wir haben systematisch die folgenden Lösungen ausprobiert:
SMTP-Konnektivität bestätigt mit:
openssl s_client -connect smtp.stackmail.com:587 -starttls smtp # Erfolgreich
swaks --to my-email --server smtp.stackmail.com --port 587 --auth LOGIN # Erfolgreich
Überprüft, ob E-Mails eingereiht wurden:
Jobs.enqueue(:user_email, type: :test_message, to_address: 'masden@kumagaku.ac.jp') # Gibt eine Job-ID zurück
Sidekiq::Queue.new("default").size # Gibt 0 zurück (zeigt an, dass der Job verarbeitet wurde)
Discourse-Protokolle überprüft:
grep "smtp" /shared/log/rails/production.log # Keine SMTP-bezogenen Fehler
- Redis-Verbindungsfehler (
Errno::ECONNREFUSEDinproduction.log).
Dienste neu gestartet und manuell ausgelöst:
sv restart sidekiq # Fehlgeschlagen, Dienst fehlt
redis-cli ping # Bestätigt, dass er läuft
bundle exec sidekiq # Jobs wurden verarbeitet, aber keine E-Mails gesendet
Überprüft, ob E-Mails von 20i blockiert wurden:
- Keine Ablehnungen oder Zustellversuche in den Mail-Protokollen von 20i.
- Wenn E-Mails abgelehnt worden wären, hätte es einen Protokolleintrag geben müssen, aber es erschien nichts.
4. Fazit: Zurück zu 3.4.0.beta4-dev
Nach umfangreicher Fehlerbehebung habe ich beschlossen, die Installation zu löschen und 3.4.0.beta4-dev neu zu installieren, da meine vorherige Installation mit dieser Version einwandfrei funktionierte.
Obwohl ich keine direkte Hilfe benötige, wollte ich diese Probleme melden, weil:
- Die E-Mail-Verarbeitung in 3.5 geändert worden sein könnte, was die SMTP-Übergabe verhindert.
- Die fehlenden Dienste von Sidekiq und die Redis-Fehler auf Probleme bei der Verarbeitung von Hintergrundjobs in 3.5 hindeuten.
- Da ich 3.4.0.beta4-dev problemlos installieren konnte, deutet dies auf eine mögliche Regression in 3.5 hin.
Ich hoffe, dieser Bericht ist hilfreich bei der Identifizierung potenzieller Probleme in Discourse 3.5.0.beta2-dev.
Mit freundlichen Grüßen,
Kirk

