Wie konfiguriere ich Discourse, um E-Mails von Mailgun zu empfangen?

Ich habe eine voll funktionsfähige Discourse-Installation (installiert über den empfohlenen Ansatz) auf einem Server (Linode) mit Ubuntu. Ich kann E-Mails senden ohne Probleme und neue Benutzerregistrierungen durchführen.

Wir verwenden diese Funktion Configuring incoming email to create new topics or group messages : Discourse benötigt eine eingehende E-Mail-Adresse.

In Mailgun habe ich eine Catch-All-Route erstellt, die E-Mails an einen Webhook weiterleitet, wie hier beschrieben: Discourse Mailgun Routes und ich habe das Plugin installiert.

Im Mailgun-Log schlägt dies jedoch fehl. Irgendwelche Ideen, wie das geht?

{
	"timestamp": 1737657789.428326,
	"recipient-domain": "forum.domain.com",
	"envelope": {
		"transport": "http",
		"targets": "https://forum.domain.com/mailgun/routes/receive_mime",
		"sender": "me@myemail.com"
	},
	"primary-dkim": "",
	"delivery-status": {
		"code": 406,
		"session-seconds": 0.277,
		"message": "Not Acceptable",
		"attempt-no": 1,
		"description": ""
	},
	"event": "failed",
	"id": "4uIIPrRRTQOwluJaE-QpRA",
	"campaigns": null,
	"log-level": "error",
	"tags": [],
	"message": {
		"size": 4089,
		"headers": {
			"message-id": "CA+riLLnyMLCruT2DmhFjTuyvy7OtQ8NrT0X0m5PZXfK3uzwCEg@mail.gmail.com",
			"to": "domain+support-12@forum.domain.com",
			"subject": "Test",
			"from": "Me Me <me@myemail.com>"
		},
		"attachments": []
	},
	"recipient": "https://forum.domain.com/mailgun/routes/receive_mime",
	"user-variables": {},
	"flags": {
		"is-test-mode": false,
		"is-authenticated": false,
		"is-routed": false,
		"is-system-test": false
	},
	"storage": {
		"region": "us-east4",
		"env": "production",
		"key": "BAABAAAVXB5iOt41fPtDZaekVDDH1beaZA",
		"url": "https://storage-us-east4.api.mailgun.net/v3/domains/forum.domain.com/messages/BAABAAAVXB5iOt41fPtDZaekVDDH1beaZA"
	},
	"severity": "permanent"
}

Der einfachste und empfohlene Weg ist, Eingehende E-Mails für selbst gehostete Websites mit Mail-Receiver konfigurieren

2 „Gefällt mir“

Wenn Sie mailgun_log_rejections aktivieren und eine weitere E-Mail senden, sollte in Ihren Sidekiq-Protokollen ein Ablehnungsgrund angezeigt werden (Mailgun speichert den Antworttext nicht, daher ist dies im Grunde der einzige Weg) und das sollte Ihnen Auskunft geben.

Andernfalls können Sie die Mail-Receiver-Einrichtung verwenden, wenn Sie dies bevorzugen.

1 „Gefällt mir“

Hallo @Wolftallemo, danke für das ausgezeichnete Plugin :slight_smile:

Ich habe /logs überprüft, konnte aber nichts finden, das sich auf dieses Problem bezieht. Ich bin mir nicht sicher, ob dies der richtige Ort ist, um die Sidekiq-Logs zu lesen?

Ich würde das Plugin lieber zum Laufen bringen, vielleicht gebe ich ihm noch ein paar Tage, bevor ich den Mail-Empfänger versuche. Meine Installation befindet sich hinter einem Traefik-Reverse-Proxy, daher wird es auf diese Weise sicherlich etwas schwieriger sein.

Grüße,

Dan

Ja, dort wären sie, obwohl das ungewöhnlich ist.

Ich würde zuerst den eingehenden Spamfilter überprüfen. Es ist möglich, dass er auf der Seite von Mailgun nicht filtert.

Wenn dies der Fall ist, würde ich entweder:

  • Die eingehende Spamfilterung auf der Seite von Mailgun ändern, um die Spam-Header hinzuzufügen (dies befindet sich in den Domain-Einstellungen).
  • mailgun_spam_detection auf none setzen (aber das empfehle ich nicht).

Aber ich nehme an, das Setzen auf none könnte hier auch ein ziemlich einfacher Test sein.

Hallo,

Diese Einstellungen scheinen bereits vorhanden zu sein. Das ist wahrscheinlich etwas sehr Dummes, das ich tue. Ich habe kurz mit dem Mail-Empfänger experimentiert; das einzige Problem ist, dass ich hinter einem Traefik Reverse Proxy arbeite, daher werde ich zweifellos ein paar Versuche brauchen, um das mit allen erforderlichen Docker Compose-Labels usw. zum Laufen zu bringen. Deshalb mochte ich Ihr Plugin so sehr!

Erhalten Sie zufällig erfolgreich Bounces von Mailgun? Die einzigen beiden Gründe, warum es ohne Protokoll abgelehnt würde, sind entweder: Sie haben den falschen Schlüssel eingestellt (es muss speziell der Webhook-Signierschlüssel sein) oder Sie haben ihn überhaupt nicht eingestellt.

Überprüfen Sie noch einmal, ob Sie versehentlich etwas anderes als den Webhook-Signierschlüssel eingestellt haben (da die Formulierung in Discourse etwas fragwürdig ist und wahrscheinlich geändert werden sollte).

Der Mail-Empfänger arbeitet auf Port 25, daher muss Treafik nichts davon wissen.

Ich habe jetzt meine MX-Einträge geändert, daher werde ich, um eine weitere 24-Stunden-Verzögerung zu vermeiden, bei der Mail-Receiver-Methode bleiben.

Das vereinfacht die Dinge sehr. In diesem Fall kann ich das Beispielskript mehr oder weniger ohne irgendwelche Änderungen oder Integration in den Traefik/Docker-Compose-Stack ausführen?