Ich habe eine funktionierende Testumgebung von DigitalOcean auf eine heimische Linux-Box (Ubuntu) umgezogen, aber ich habe Schwierigkeiten, eingehende E-Mails zum Laufen zu bringen. Ich leite Port 25 auf meinem Router weiter und kann sehen, dass E-Mails ankommen, wenn ich mir die Mail-Logs ansehe (ich kann das To: und das From: in den Logs sehen). Das Scheitern scheint aufzutreten, wenn der Mail-Empfänger versucht, die E-Mail an Discourse zu POSTen, und ich bekomme einen Timeout. Ich vermute, das liegt daran, dass mein ISP keine Schleifen durch den Router zulässt. Wenn also der öffentliche Domainname der Discourse-Instanz im POST-Befehl verwendet wird, hängt er, da einfach keine Antwort kommt und der Router die Pakete verwirft.
Das hat auch dazu geführt, dass ich die Discourse-Website auf der Maschine, auf der sie läuft, nicht aufrufen konnte… bis mir klar wurde, dass ich eine Zeile in die Datei /etc/hosts einfügen konnte, die den öffentlichen Domainnamen auf die interne IP-Adresse des Netzwerks verweist. Seitdem kann ich die Discourse-Instanz in Firefox aufrufen.
Ich vermute, dass es eine Art Magie geben könnte, die ich anwenden kann, damit der Mail-Receiver-Container etwas Ähnliches weiß. Nach meiner Recherche verwendet er nicht die Datei /etc/hosts, und das könnte die Ursache des Problems sein. Ich habe versucht, Zeilen zur Datei mail-receiver.yml hinzuzufügen, um extra_hosts: zu erlauben, aber ich kann es nicht zum Laufen bringen. Wenn ich die Mail-Receiver-App aufrufe und versuche, eine weitere Zeile zu /etc/hosts hinzuzufügen (mit cat >>), sehe ich zwar, dass die Zeile erscheint, aber das gleiche Problem besteht weiterhin.
Hier ist die Zeile aus den Logs, wo der POST-Fehler angezeigt wird (Hinweis: Domain ist für dieses Beispiel erfunden):
<23>Feb 23 01:00:31 receive-mail[133]: Recipient: abc@example-discourse.org.uk<19>Feb 23 01:01:31 receive-mail[133]: Failed to POST the e-mail to https://example-discourse.org.uk/admin/email/handle_mail: execution expired (Net::OpenTimeout)<19>Feb 23 01:01:31 receive-mail[133]: /usr/lib/ruby/2.7.0/net/http.rb:960:in `initialize’
Irgendwelche Gedanken?