Dies ist für eine Erstinstallation, und ich bin in keiner Hinsicht ein DNS-Experte! Hier ist mein aktueller Stand:
Tests für ausgehende E-Mails funktionieren einwandfrei. Ich verwende MailGun mit ihrem empfohlenen “mg”-Subdomain. Ich sende über Port 2525. Die MailGun-API für Webhooks habe ich im entsprechenden Feld in den Einstellungen eingetragen (sie haben DREI APIs – ist das die richtige??). Außerdem habe ich MX-Einträge für die mg-Subdomain in meinen DNS-Einstellungen konfiguriert. Der MailGun-Validierungscheck besagt, dass alles ordnungsgemäß funktioniert, ebenso wie mail-tester.com.
Der eingehende E-Mail-Empfang ist mit einer Subdomain namens “inbound” konfiguriert. Wenn ich eine E-Mail von einem Gmail-Konto an fake@inbound.[mydomain].org sende, sehe ich, dass diese E-Mail im Mail-Empfangsprotokoll erscheint. Wenn ich jedoch von Discourse aus eine Test-E-Mail an dieselbe Adresse über Einstellungen > E-Mail sende, scheint die E-Mail zu verschwinden – nichts wird im Ordner „Abgelehnt“ angezeigt. Für den Rest verwende ich Straightforward direct-delivery incoming mail.
Aufgrund anderer selbstverschuldeter Probleme im Setup-Prozess habe ich mich dafür entschieden, bei Null anzufangen: Ich habe meinen Droplet gelöscht, Discourse neu installiert und fange von vorne an. Ich habe jedoch nicht das MailGun-Konto gelöscht und verwende tatsächlich denselben API-Webhook wie zuvor. Könnte das das Problem sein? Ich verwende jedoch einen neuen, von Discourse generierten API-Schlüssel (der alte wurde offensichtlich vernichtet, als ich den Droplet gelöscht habe).
Das Einzige, was mir noch einfällt, ist der Endpunkt in mail-receiver.yml. Bei mir sieht er so aus: DISCOURSE_MAIL_ENDPOINT: 'https://inbound.[mydomain].org/admin/email/handle_mail'
Habt ihr eine Idee, wo der Haken liegt? (Das Sahnehäubchen ist, dass alles vor nicht allzu langer Zeit einwandfrei funktioniert hat – bevor ich den Droplet gelöscht habe. Offensichtlich lerne ich langsam ). Vielen Dank an alle!
Dies sollte die Domain Ihres Forums sein, nicht Ihre E-Mail-Adresse. Können Sie bestätigen, dass Ihr Forum nicht unter inbound.[mydomain].org erreichbar ist? Wenn beispielsweise Meta diese Methode verwenden würde, sähe die URL so aus:
Außerdem hat dies nichts mit Mailgun zu tun, außer dass Sie sicherstellen müssen, die Anweisung von Mailgun zu ignorieren, MX-Einträge für die Domain hinzuzufügen. Wie hier beschrieben:
Hinweis: Anbieter für ausgehende E-Mails wie Mailgun können Sie auffordern, MX-Einträge hinzuzufügen, die auf ihre Server verweisen. Diese sollten Sie entfernen, damit die MX-Einträge für Ihr Forum ausschließlich auf die Domain Ihres Forums zeigen. SPF- und DKIM-Einträge müssen weiterhin auf die Server Ihres Anbieters für ausgehende E-Mails verweisen, damit Sie E-Mails versenden können.
@tobiaseigen Wir kommen näher! Ich habe die Änderung vorgenommen, indem ich die eingehende E-Mail-Subdomain vom Endpunkt entfernt habe. Gespeichert und dann den E-Mail-Empfänger neu gestartet (weil ich nicht weiß, was ich tue!). Getestet. Leider ohne Erfolg. Dann habe ich die App vollständig neu aufgebaut. Anschließend habe ich zwei neue Konten mit separaten E-Mail-Adressen erstellt. Ich habe dann das Admin-Konto verwendet, um eine dieser Personen per PM zu kontaktieren. Das hat wie erwartet eine E-Mail generiert. Ich habe dann per E-Mail auf die PM geantwortet. Hier ist das Ergebnis im Mail-Log:
Tatsächlich kommen wir näher! Ich bin mir nicht sicher, was mit dem vorübergehenden Fehler genau gemeint ist? Es sind bereits 13 Minuten vergangen, und die Zustellung an Discourse erfolgt immer noch nicht. Seltsam.
Ich sollte erwähnen, dass ich die Subdomain „inbound
Ich habe ein wenig Schwierigkeiten, deine Verwendung von Domainnamen zu verstehen. Auf meiner Seite sind DISCOURSE_MAIL_ENDPOINT und der MX-Eintrag für eingehende E-Mails dieselbe Domain, die auf den Discourse-Server verweist, wie im Originalbeitrag unter Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver erklärt. Du scheinst jedoch zu versuchen, verschiedene Domains zu verwenden.
Im Allgemeinen möchtest du für dein Discourse eine Subdomain wie forum.meinedomain.org verwenden, um dein Forum von deiner Hauptwebsite und den E-Mails auf meinedomain.org zu trennen.
Gerne kläre ich das auf und tue so, als wäre meine Domain thesite.org, um es einfach zu halten. Was ich sehe, ist ein SSL-Problem in den Logs des Mail-Empfängers: <19>Nov 25 19:11:29 receive-mail[160]: Failed to POST the e-mail to https://inbound.thesite.org/admin/email/handle_mail: hostname "inbound.thesite.org" does not match the server certificate (OpenSSL::SSL::SSLError)
Um deine Frage zu beantworten: Ich hatte zwei Ziele, die ich als extrem üblich annehme:
admin@thesite.org soll eine Adresse sein, über die Nutzer den Admin kontaktieren können.
thesite.org startet das Forum (ohne Subdomain).
Aktuell sehen meine Namecheap-DNS-Einstellungen so aus (TTL = Auto und Priority = 10):
Meine containers/mail-receiver.yml-Einstellungen sind:: MAIL_DOMAIN: inbound.thesite.org DISCOURSE_MAIL_ENDPOINT: 'https://thesite.org/admin/email/handle_mail' DISCOURSE_API_KEY: (stuff) DISCOURSE_API_USERNAME: system ← dasselbe wie der API-Schlüssel
* Hinweis—> Ich habe die LetsEncrypt-Zeilen unverändert gelassen (das “#” nicht entfernt)
Andere Einstellungen:
Hostname über die Kommandozeile auf inbound.thesite.org geändert
Hast du Ideen, wie es weitergehen könnte? … und ein riesiges DANKE im Voraus! Ich ping auch @pfaffman, da er mir bei früheren Problemen mit dem Setup so freundlich geholfen hat. Dein “Straightforward”-Leitfaden war ebenfalls extrem hilfreich. Cheers!
Die Frage lautet also: Können beide oben definierten Ziele erreicht werden (sie scheinen absurd häufig vorzukommen)? Ist der einzige Workaround, Besucher, die www.thesite.org und/oder thesite.org eingeben, in den DNS-Einstellungen auf subdomain.thesite.org umzuleiten? Wenn dies zutrifft, muss ich mich damit abfinden, die nach außen hin sichtbare E-Mail-Adresse in etwas Hässliches wie admin@subdomain.thesite.org zu ändern.
Ich kann damit leben, die Admin-E-Mail-Adresse zu ändern, wenn es absolut notwendig ist. Es scheint, als übersehen wir etwas Offensichtliches, aber vielleicht liege ich daneben (was wahrscheinlich der Fall ist!).
Wenn Sie möchten, dass der Mail-Empfänger E-Mails an einer anderen Domain als Ihrer Discourse-Domain erhält, ist das meiner Meinung nach möglich. Der einfachste Weg ist, das Let’s Encrypt-Zertifikat im Mail-Empfänger nicht zu verwenden.
@pfaffman du bist ein Genie! Es hat funktioniert!! Nach dem Befolgen von Let’s Encrypt mit mehreren Domains einrichten, gefolgt vom erneuten Erstellen von Discourse und dann von mail-receiver (eines der beiden war wahrscheinlich nicht nötig), hat es geklappt. Voila!
Später heute Abend möchte ich den Originalbeitrag (OP) „Einfache direkte Zustellung eingehender E-Mails