Aktivieren von reply_by_email

Ich habe unseren Mailserver so eingerichtet, dass er E-Mails über HTTP über die API an unser Discourse weiterleitet, und das funktioniert. Ich möchte nun reply_by_email aktivieren, damit Benutzer direkt auf Nachrichten antworten können.

Ich versuche also, reply_by_email zu aktivieren, aber Discourse lehnt meine Anfrage ab:

discourse(prod)> SiteSetting.reply_by_email_address
=> "reply+%{reply_key}@<our-valid-domain>.de"
discourse(prod)> SiteSetting.email_in
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
lib/site_settings/type_supervisor.rb:271:in `validate_value': reply_by_email_enabled: Sie müssen entweder manuelles POP3-Polling aktivieren oder einen benutzerdefinierten Mail-Poller aktiviert haben, bevor Sie E-Mail-Antworten aktivieren können. (Discourse::InvalidParameters)
	from lib/site_settings/type_supervisor.rb:177:in `to_db_value'
	from lib/site_setting_extension.rb:623:in `add_override!'
	from lib/site_setting_extension.rb:990:in `block in setup_methods'
	from (discourse):15:in `<main>'

Kann mir jemand helfen?

Danke!
Hans

Ich würde mit diesem Teil der Antwort beginnen, die Sie erhalten haben: Sie müssen entweder manuelles POP3-Polling aktivieren oder ein benutzerdefiniertes Mail-Polling aktivieren, bevor Sie die Antwort per E-Mail aktivieren.

Das klingt, als hätten Sie POP3 oder mail-receiver noch nicht eingerichtet, bevor Sie dies versuchen. (Sie möchten wahrscheinlich mail-receiver.)

Ich bin mir nicht einmal sicher, wo Sie diese Rails-Befehle gefunden haben könnten, da beide Prozesse die Admin-Site-Einstellungen verwenden würden:

Das ist richtig – ich habe keines von beiden eingerichtet, aber unseren Postfix-Mailserver so konfiguriert, dass er E-Mails über seine API an Discourse weiterleitet. Ich bin mir nicht sicher, ob das eine unterstützte Konfiguration ist, aber ich würde wirklich gerne vermeiden, einen weiteren Mailserver (mail-receiver) zu betreiben, wenn es möglich ist.

Ich finde die Einstellung „Per E-Mail antworten aktiviert“ in meinem Admin-Bereich nicht:

Ist es möglich, dass meine Verwendung der Rails-Konsole die Admin-Einstellungen durcheinander gebracht hat?

Ich benutze mail-receiver selbst, daher ist ein Postfix+API-Setup für mich zu kompliziert, aber beachte, dass der Bildschirm, auf dem du dich befindest, ein Unterabschnitt nur für “E-Mails, die an deine Mitglieder gesendet werden” ist.

Die von mir erwähnten Einstellungen für die E-Mail-Antwort findest du unter Admin → Alle Website-Einstellungen → E-Mail:

(Es gibt eine Menge Einstellungen in Discourse und sie sind nicht immer so gruppiert, wie man es erwarten würde.)

Danke, @ToddZ - Ich habe die Einstellung jetzt gefunden, kann sie aber nicht aktivieren, und die Fehlermeldung ist dieselbe wie bei der Verwendung der Raills-Konsole:

Basierend auf der Beschreibung dessen, was Sie tun, und der Beschreibung der Einstellung manual_polling_enabled ist möglicherweise das, wonach Sie suchen

1 „Gefällt mir“

Die Einstellung „Manuelles Abrufen aktiviert“ finden Sie auch unter Admin → Alle Website-Einstellungen → E-Mail.

Und da ich anscheinend nicht schlafen kann, habe ich ein wenig recherchiert und nur sehr wenige Fälle gefunden, in denen Leute versucht haben, E-Mails über die API zu konfigurieren. Falls es Ihnen bei Ihren weiteren Schritten nützlich ist, hier ist, was ich gefunden habe:

(bunch of links)

Während meiner Suche stieß Discobot auf diese möglicherweise veraltete Information:

Sie können die Discourse-API verwenden, um eingehende E-Mails zu verarbeiten, ohne auf den Mail-Receiver-Container angewiesen zu sein. Der Endpunkt /admin/email/handle_mail akzeptiert rohen E-Mail-Inhalt über POST, sodass Sie E-Mails direkt über ein Skript oder eine benutzerdefinierte Integration an Discourse senden können. Diese Methode umgeht die Notwendigkeit des SMTP-Pollings oder des Mail-Receiver-Containers vollständig.

Sie können beispielsweise eine E-Mail mit einem Curl-Befehl an Discourse senden, wobei der Parameter email den rohen E-Mail-Inhalt enthält. Dieser Ansatz wird häufig in benutzerdefinierten E-Mail-Zustellungs-Setups verwendet, insbesondere bei der Verwendung von Diensten wie AWS Lambda oder anderen serverlosen Funktionen.

Erfahren Sie mehr über den API-Endpunkt in der Discourse API-Dokumentation.

(…Ich habe nichts darüber in der API-Dokumentation gefunden.)

2018: Dieses Thema schien keine Lösung zu haben.

2018: Dieser Beitrag verweist auf eine E-Mail-Anleitung – die sich auf eine Sprache bezieht, die dort nicht mehr existiert – und empfiehlt außerdem: „Der einfachste Weg, die Antwort per E-Mail zu ermöglichen, ist die Verwendung der Mail-Receiver-Container-Vorlage, anstatt mit allen möglichen unterschiedlichen APIs von verschiedenen Anbietern zu arbeiten.“

2022: Der Parameter email sollte geändert werden zu email_encoded.

2022: Eine weitere Empfehlung, einfach Mail-Receiver zu verwenden.

2 „Gefällt mir“

@ToddZ Das hat funktioniert, vielen Dank!

discourse(prod)> SiteSetting.manual_polling_enabled = true
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
=> true
2 „Gefällt mir“