Habilitar la recepción y respuesta de correos electrónicos

Estoy usando NetCore Cloud como proveedor de correo electrónico, pero no puedo habilitar la recepción de correos electrónicos ni responder a correos electrónicos. ¿Alguna idea de cómo puedo lograr esto usando NeCore Cloud Email?

1 me gusta

Estoy trabajando en esto con @Abdelrahman_MoHamed. Creemos que nuestro problema/bloqueo principal es que estamos intentando configurar netcore para enviar correos electrónicos de respuesta (entrantes) a Discourse para su procesamiento.

Lo que no podemos averiguar es cómo hacer que esos datos (el correo electrónico entrante analizado) lleguen a Discourse para su procesamiento. ¿Dónde está la pantalla de configuración que estamos viendo en netcore?

Creemos que querríamos introducir una URL similar a esta:

https://forum.mamapedia.com/admin/email/handle_mail

Sin embargo, estamos confundidos porque cuando miramos la configuración de los webhooks, parece que son solicitudes POST…

Además, asumimos que deberíamos usar webhooks para lograr nuestro objetivo.

Hola Comunidad de Discourse,

Estoy trabajando en la configuración de la funcionalidad de Responder por Correo Electrónico para mi instancia de Discourse y necesito algunas aclaraciones y orientación.

Mi Configuración Actual

  • Estoy utilizando Netcore como mi proveedor de correo electrónico.
  • Para los correos entrantes, he configurado una regla en Netcore para capturar todos los correos que coincidan con el formato: reply+*@mydiscourse.com.
  • Netcore admite el reenvío de estos correos a:
    1. Otra dirección de correo electrónico
    2. Un webhook

Lo que He Intentado
Intenté reenviar estos correos al siguiente endpoint de Discourse:
https://mydiscourse.com/admin/email/handle_mail
Desafortunadamente, esto resultó en un estado 404 Not Found.

Mis Preguntas

  1. ¿Quién maneja los correos entrantes en esta configuración? ¿Deben ser procesados directamente por Discourse, o el proveedor de correo electrónico necesita reenviarlos en un formato específico para que Discourse los maneje?
  2. Noté que hay una opción llamada Recepción Directa de Correo utilizando mail-receiver. ¿Sería este un mejor enfoque para mi configuración?

Quiero asegurarme de que los correos entrantes se procesen correctamente para habilitar la funcionalidad de Responder por Correo Electrónico. ¿Podrían guiarme sobre la forma correcta de configurarlo con Netcore, o señalarme la documentación relevante?

¡Gracias de antemano por su apoyo!

1 me gusta

Un punto aquí, netcore es lo que antes se conocía como ‘pepipost’, así que si eso le suena a alguien, quizás pueda ayudarnos a encontrar la dirección correcta.

¡Gracias de antemano!

La forma más fácil es Configurar el correo electrónico entrante de entrega directa para sitios autoalojados con Mail-Receiver

Estoy bastante seguro de que el punto final que estás utilizando es para manejar los rebotes, pero podría estar equivocado.

Gracias por tu respuesta. Con esta configuración, tendremos un endpoint que podremos usar en el proveedor de correo electrónico para publicar los datos en él.

@pfaffman muy útil, gracias. Entonces, dejando de lado netcore (también conocido como pepipost), ¿estás diciendo que si queremos:

  • envío de correo electrónico
  • gestión de rebotes
  • manejo de respuestas

Independientemente de si usamos mailgun, sengrid, etc., tenemos que Configurar la entrega directa de correo electrónico entrante para sitios autoalojados con Mail-Receiver - ¿es correcto? Dices que es la forma “más fácil”, así que tengo curiosidad, ¿hay otras formas?

Nuevamente, realmente aprecio la respuesta, hemos estado/estamos bloqueados en esto desde hace unos días…

Además, publicando en la comunidad general aquí, estamos buscando una confirmación de que Configurar la entrega directa de correo electrónico entrante para sitios autoalojados con Mail-Receiver es necesario para el manejo completo del correo electrónico en entornos autoalojados.

Si alguien más puede confirmar que esto es realmente necesario, sería de gran ayuda.

También es posible configurar un buzón pop3 que Discourse consultará. El receptor de correo es más sencillo y permite usar direcciones arbitrarias para buzones de grupos o categorías.

1 me gusta

Gracias @pfaffman, muy útil de nuevo. Así que seguimos adelante con el receptor de correo, estamos en una instalación multisitio. Una vez que terminemos, asumiendo que todo va bien, volveremos aquí.

Hola @pfaffman, gracias de nuevo por tu ayuda.

He estado intentando configurar el contenedor de mail-receiver de Discourse para mi foro, pero me he encontrado con un problema relacionado con el rechazo de correos al probar. Aquí están los detalles del problema:

  • Dominio del Foro: test.mamapedia.com (proxied a través de Cloudflare)

  • Dominio del Receptor de Correo: reply.mamapedia.com

  • Detalles del Error:
    Al intentar probar el receptor de correo usando Telnet, recibo el siguiente error:

    telnet reply.mamapedia.com 25
    Trying 34.122.3.90...
    Connected to reply.mamapedia.com.
    Escape character is '^]'.
    220 ESMTP server
    MAIL FROM: <abdohamoda636@gmail.com>
    250 2.1.0 Ok
    RCPT TO: <test@reply.mamapedia.com>
    554 5.7.1 <test@reply.mamapedia.com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again.
    

    Registros del Receptor de Correo: Los registros del contenedor de mail-receiver muestran el siguiente mensaje de rechazo:

    Dec 17 17:19:12 test-discourse-20241125-173103-mail-receiver postfix/smtpd[139]: NOQUEUE: reject: RCPT from 90.3.122.34.bc.googleusercontent.com[34.122.3.90]: 554 5.7.1 <test@reply.mamapedia.com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again?; from=<abdohamoda636@gmail.com> to=<test@reply.mamapedia.com> proto=SMTP
    Dec 17 17:19:12 test-discourse-20241125-173103-mail-receiver postfix/smtpd[139]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "test@reply.mamapedia.com" from client "90.3.122.34.bc.googleusercontent.com[34.122.3.90]"
    

    Observaciones:

    • El mensaje de error en los registros indica que la dirección del destinatario “test@reply.mamapedia.com” está siendo rechazada.
    • El problema parece estar relacionado con la configuración de postfix o algún tipo de restricción que impide que el correo sea aceptado.

    Lo que he intentado:

    1. Me he asegurado de que los registros DNS (MX) para reply.mamapedia.com estén configurados correctamente.
    2. He revisado la configuración del contenedor de mail-receiver y he verificado que el dominio reply.mamapedia.com esté configurado correctamente.

    Archivo de configuración de Mail-Receiver

    env:
      LC_ALL: en_US.UTF-8
      LANG: en_US.UTF-8
      LANGUAGE: en_US.UTF-8
    
      ## A dónde se debe enviar el correo a tu foro. En general, está perfectamente bien
      ## usar el mismo dominio que el foro aquí.
      MAIL_DOMAIN: reply.mamapedia.com
    # descomenta estas (¡y el volumen de abajo!) para soportar TLS
      POSTCONF_smtpd_tls_key_file:  /letsencrypt/reply.mamapedia.com.key
      POSTCONF_smtpd_tls_cert_file:  /letsencrypt/fullchain.cer
      POSTCONF_smtpd_tls_security_level: may
    
    
      ## La URL base para esta instancia de Discourse.
      ## Esta será la URL de tu sitio de Discourse. Por ejemplo,
      ## https://test.mamapedia.com. Si estás ejecutando una configuración de subdirectorio,
      ## asegúrate de tenerlo en cuenta (es decir, https://example.com/forum).
      DISCOURSE_BASE_URL: 'https://test.mamapedia.com'
    
      ## La clave API maestra de tu foro de Discourse. Puedes obtenerla de
      ## la pestaña "API" de tu panel de administración.
      DISCOURSE_API_KEY:  '#############'
    
      ## El nombre de usuario a utilizar para procesar el correo entrante. A menos que hayas
      ## renombrado al usuario `system`, deberías dejarlo como está.
      DISCOURSE_API_USERNAME: system
    
    volumes:
      - volume:
          host: /var/discourse/shared/mail-receiver/postfix-spool
          guest: /var/spool/postfix
    # descomenta para soportar TLS
      - volume:
          host: /var/discourse/shared/standalone/letsencrypt
          guest: /letsencrypt
    
    
    

    Registros DNS de Cloudflare

    image

    image

    La imagen muestra una página web con un campo etiquetado como "A", un campo para introducir texto, una dirección IP, un icono de nube que indica "Proxied" y un botón "Auto", con un botón "Edit" a la derecha. (Subtitulado por IA)

    Agradezco cualquier ayuda o información que puedan proporcionar.

1 me gusta

No lo sé, pero tales errores son siempre un problema de DNS. Y cada vez que Cloudflare está involucrado también. La última vez, hace bastante tiempo, me encontré con ese error de escape, fue un tiempo de espera debido a un servidor mal configurado.

2 Me gusta

Tengo este mensaje cuando intento enviar un mensaje a través de telnet, pero funciona cuando respondo a las notificaciones con mis proveedores de correo electrónico habituales.

Sugiero que habilites la función de respuesta por correo electrónico y la pruebes en el mundo real para ver cómo va.

3 Me gusta

Gracias, @Canapin, quizás tengas razón, intentaré responder a cualquier correo electrónico y veré si funciona.

Publicaré las actualizaciones.

1 me gusta

Por si sirve de ayuda, aquí están los contenidos de mi archivo mail-receiver.yml de trabajo.

Uso Cloudflare SSL, por lo que, dado que Cloudflare proporciona la TLS, dejé todas las líneas TLS comentadas.


## esta es la plantilla del contenedor receptor de correo
##
## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild mail-receiver
##
## ¡TENGA MUCHO CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES DE ESPACIO EN BLANCO O ALINEACIÓN!
## visite http://www.yamllint.com/ para validar este archivo según sea necesario

base_image: discourse/mail-receiver:release
update_pups: false

expose:
  - "25:25"   # SMTP

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8

  ## A dónde se debe enviar el correo electrónico a su foro. En general, está perfectamente bien
  ## usar el mismo dominio que el foro en sí aquí.
  MAIL_DOMAIN: mydiscourseinstance.com
# descomente estas (¡y el volumen de abajo!) para admitir TLS
#  POSTCONF_smtpd_tls_key_file:  /letsencrypt/discourse.example.com/discourse.example.com.key
#  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/discourse.example.com/fullchain.cer
#  POSTCONF_smtpd_tls_security_level: may


  ## La URL base para esta instancia de Discourse.
  ## Será la URL de su sitio de Discourse. Por ejemplo,
  ## https://discourse.example.com. Si está ejecutando una configuración de subdirectorio,
  ## asegúrese de tenerlo en cuenta (es decir, https://example.com/forum).
  DISCOURSE_BASE_URL: 'https://mydiscourseinstance.com'

  ## La clave API maestra de su foro de Discourse. Puede obtenerla de
  ## la pestaña "API" de su panel de administración.
  DISCOURSE_API_KEY: xxxxxxxxxxxxxxxx

  ## El nombre de usuario a utilizar para procesar el correo electrónico entrante. A menos que haya
  ## renombrado el usuario `system`, debería dejarlo como está.
  DISCOURSE_API_USERNAME: system

volumes:
  - volume:
      host: /var/discourse/shared/mail-receiver/postfix-spool
      guest: /var/spool/postfix
# descomente para admitir TLS
#  - volume:
#      host: /var/discourse/shared/standalone/letsencrypt
#      guest: /letsencrypt

¡Gracias a todos por sus valiosas sugerencias y apoyo! @pfaffman, @Jagster, @Canapin y @denvergeeks — Aprecio su ayuda. Quería actualizarles que ¡ya está funcionando! Eliminé todas mis configuraciones antiguas, actualicé Docker a la última versión y me aseguré de que el registro MX requerido se agregara correctamente. Telnet todavía no funciona, pero ahora puedo recibir respuestas con éxito. ¡Gracias de nuevo por guiarme a través de esto!

2 Me gusta

Me alegra que al final funcione. Tengo curiosidad por saber qué en la configuración de postfix rechaza los correos electrónicos de telnet (podrían ser rechazados por muchas razones, pero la razón dada parece incorrecta).

Correcto. Solo acepta correos que Discourse aceptará.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.