He configurado nuestro servidor de correo para reenviar correos a nuestro Discourse a través de HTTP usando la API, y eso funciona. Ahora quiero habilitar reply_by_email para que los usuarios puedan responder a los mensajes directamente.
Por lo tanto, estoy intentando habilitar reply_by_email, pero Discourse rechaza mi solicitud:
discourse(prod)> SiteSetting.reply_by_email_address
=> "reply+%{reply_key}@<nuestro-dominio-valido>.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: Debes habilitar el sondeo manual, POP3 o tener un sondeador de correo personalizado habilitado antes de habilitar la respuesta por correo electrónico. (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>'
Empezaría con esta parte de la respuesta que recibiste: You must enable either manual, POP3 polling or have a custom mail poller enabled before enabling reply by email
Eso suena a que quizás no has configurado POP3 o mail-receiver antes de intentar esto. (Probablemente quieras mail-reciever).
Ni siquiera estoy seguro de dónde podrías haber encontrado esos comandos de Rails, porque ambos procesos te harían usar la configuración del sitio de Administración:
Eso es correcto: no he configurado ninguno de los dos, pero configuré nuestro servidor de correo Postfix para reenviar correos electrónicos a Discourse a través de su API. No estoy seguro de si esa es una configuración compatible, pero realmente me gustaría evitar ejecutar otro servidor de correo (mail-receiver) si puedo.
No encuentro la configuración “Reply by email enabled” en mi sección de administración:
Yo mismo uso mail-receiver, así que una configuración de Postfix+API está fuera de mi alcance, pero ten en cuenta que la pantalla en la que te encuentras es una subsección solo para “correos electrónicos que se envían a tus miembros”.
La configuración que mencioné para la respuesta por correo electrónico se encuentra en Administrador → Todos los ajustes del sitio → Correo electrónico:
La configuración “Manual polling enabled” también se encuentra en Admin → All site settings → Email.
Y como aparentemente no puedo dormir, investigué un poco y vi muy pocos casos de personas intentando configurar la recepción de correos electrónicos a través de la API. En caso de que te sea útil a medida que avanzas, esto es lo que encontré:
(un montón de enlaces)
Mientras buscaba, Discobot encontró esta información, quizás desactualizada:
Puedes usar la API de Discourse para manejar correos electrónicos entrantes sin depender del contenedor mail-receiver. El endpoint /admin/email/handle_mail acepta contenido de correo electrónico sin procesar a través de POST, lo que te permite enviar correos electrónicos directamente a Discourse utilizando un script o una integración personalizada. Este método evita la necesidad de sondeo SMTP o del contenedor mail-receiver por completo.
Por ejemplo, puedes enviar un correo electrónico a Discourse usando un comando curl con el parámetro email que contiene el contenido del correo electrónico sin procesar. Este enfoque se usa comúnmente en configuraciones personalizadas de entrega de correo electrónico, especialmente cuando se utilizan servicios como AWS Lambda u otras funciones sin servidor.
2018: Esta publicación se refiere a una guía de correo electrónico —haciendo referencia a un lenguaje que ya no existe allí— y también recomienda: “La forma más fácil de hacer que la respuesta por correo electrónico funcione es usar la plantilla del contenedor mail-receiver, en lugar de intentar trabajar con todo tipo de APIs variables de los diferentes proveedores”.