Nun, um zu beginnen: Dies ist die Produktionsumgebung, und ich kann die erste Registrierungs-E-Mail nicht versenden.
Ich bin mir sicher, dass meine SMTP-Einstellungen korrekt sind.
Ich kann meinen Mailserver mit der verwendeten Portnummer anpingen und per Telnet verbinden, aber sobald ich „EHLO mailserver
@irwinstar, ich habe den tatsächlichen Mailserver entfernt, um zu vermeiden, dass mein Mailserver auf einem öffentlichen Forum offengelegt wird. Ich kann jedoch garantieren, dass die Angaben korrekt sind, da ich die Einstellungen von meinem funktionierenden Mailclient kopiert und sie zudem mit den SMTP-Einstellungen meines tatsächlichen Mailservers verglichen habe.
Vielen Dank für dein Hilfsangebot. Ich vermute, das Problem liegt bei den SPF/DKIM-Einträgen, daher versuche ich, diese zu korrigieren.
Trotzdem sollte discourse-doctor sie dennoch korrekt parsen. Ich bin mir nicht sicher, was dort los ist, da ich die Datei nicht selbst in vim/nano bearbeitet habe. Zur Klarstellung: Das YAML wurde mit discourse-setup generiert.
Und ich glaube, Discourse unterstützt das Protokoll in 465 derzeit nicht. Wenn Ihr Mailserver 587 unterstützt, können Sie stattdessen auf 587 umstellen. Leider kann mein Mailserver 587 nicht nutzen, daher habe ich einen Mail-Proxy außerhalb von Discourse eingerichtet.
@irwinstar, falls dies zutrifft, ist dies äußerst wichtige Information und würde erklären, warum meine E-Mail-Einrichtung nicht funktioniert. Haben Sie eine Quelle für diese Information?
Ich bin mir nicht ganz sicher, aber ich habe es einige Male mit Port 465 versucht.
Schließlich verwende ich das Docker-Image „hieulq/mailproxy“ als Mail-Proxy.
Und ich nutze diese app.yml-Einstellung für Discourse:
Diese Vorgehensweise mag nicht ideal sein, aber sie funktioniert.
Ich habe heute nach einem Mail-Plugin gesucht, konnte aber keines finden.
Ich möchte keine Cloud-Mailserver kaufen oder Proxies verwenden (denn wenn ich eine schmutzige Lösung wollte, würde ich mir jetzt einfach ein Admin-Konto besorgen), da ich bereits einen Mailserver bei HostGator habe.
Ich bin mir sicher, dass die SPF-Einträge für die IP-Adresse meines Discourse-Servers eingerichtet sind. Ich versuche jetzt hauptsächlich, die DKIM-Einträge zu validieren.
Wenn jemand bestätigen kann, dass Port 465 nicht erlaubt ist, wäre das fantastische Neuigkeiten, da es mich davon abhalten würde, zu weit in das Kaninchenloch eines nicht existierenden Problems zu klettern. Port 465 war ein Problem, wie im folgenden Beitrag erwähnt.
Ich habe bei der Installation bereits einige Fortschritte erzielt.
Über Port 587 kann ich eine komplette E-Mail erfolgreich per Telnet versenden und die Authentifizierung funktioniert einwandfrei. Deshalb habe ich den Port gewechselt.
Jetzt, wenn die E-Mail versendet wird, erhalte ich folgende Fehlermeldung:
Delivered mail d86b48cc-b0f4-4df3-8960-ab5ff96613a0@discourse.imbleau.com (251.0ms)
Job exception: hostname "mail.redacted.com" does not match the server certificate
Mir ist jedoch aufgefallen, dass dies kein Verbindungs-Timeout mehr ist (das nach ganzen 60 Sekunden ausgelöst wird), sondern eine andere Ausnahme, die bereits nach 250 ms auftritt.
Ehrlich gesagt bin ich mir nicht sicher, wie ich das beheben soll. Ich habe Folgendes versucht:
./launcher enter app
rails r "SiteSetting.notification_email = 'system@mail.redacted.com'"
exit
und anschließend das System neu aufgebaut, um es nur für diesen einen Versuch zu verwenden. Trotzdem keine Besserung. Der gleiche Fehler tritt weiterhin auf.
DAS EMAIL-PROBLEM BEHEBT! (discourse-doctor analysiert immer noch falsch)
Ich habe mich etwas mehr mit Ruby beschäftigt und recherchiert, warum dieser Fehler im Hintergrund auftrat, was mich zu diesem Stackoverflow-Eintrag führte.
Das war der Übeltäter. Die Lösung bestand darin, die SSL-Aushandlung zu ändern, was mir die Idee gab, diese Einstellung in der app.yml-Datei zu deaktivieren: DISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, Standard: true)
Dadurch wird die TLS-Verschlüsselung deaktiviert, wobei das eigentliche Problem darin besteht, dass Sie einen falschen Hostnamen verwenden. Der Mailserver präsentiert nämlich ein Zertifikat, das einen anderen Namen als mail.redacted.com angibt. Viele E-Mail-Server sind unter mehreren verschiedenen Hostnamen bekannt; Sie müssen lediglich herausfinden, welcher für das Zertifikat verwendet wird.
Sie könnten versuchen, herauszufinden, welchen Hostnamen der Server angibt, und Ihre Konfiguration entsprechend anpassen.
Danke @RGJ! Seltsamerweise besagt es, dass der CN eine meiner Subdomains ist, die nichts mit E-Mail zu tun hat. Das lohnt sich zu untersuchen. Vielen Dank für die Anleitung.