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>'
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:
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:
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
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.
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.“