Configurar correo electrónico entrante de entrega directa para sitios autoalojados con Mail-Receiver

¿Cómo se deshabilita exactamente el soporte de DMARC?

Es decir, añadir INCLUDE_DMARC: false a la sección env de mail-receiver.yml no parece hacerlo. Esto sí parece hacer que los demonios opendkim y opendmarc no se ejecuten (lo que provoca una advertencia en los registros), pero la verificación de SPF todavía se está realizando.

Editado para añadir:
Creo que logré deshabilitar las comprobaciones de SPF añadiendo también la siguiente línea POSTCONF_ a la sección env:

env:
  ...
  INCLUDE_DMARC: false
  POSTCONF_smtpd_recipient_restrictions: check_policy_service unix:private/policy
  ...

Obtuve esto al mirar el commit que introdujo las comprobaciones de DMARC, y ver lo que debería suceder cuando INCLUDE_DMARC es falso.

No sé casi nada sobre cómo se construyen las imágenes de docker, pero tengo la impresión de que la bandera INCLUDE_DMARC es algo que debe ser configurado por alguien más, en algún otro lugar, en algún otro momento — no algo que se pueda hacer en mail-receiver.yml.

2 Me gusta

He encontrado la necesidad de abrir el puerto 443 en ufw; de lo contrario, obtengo API Request Preparation Failed en los logs. Creo que esto es mejor mencionarlo porque las instrucciones de instalación estándar mencionan la habilitación de ufw.

El puerto 25 se menciona en mail-receiver.yml y parece eludir ufw.

1 me gusta

¿Debería el repositorio de GitHub estar en el OP?

3 Me gusta

Usuarios del receptor de correo, por favor, vean Remove smtp_should_reject & discourse-smtp-fast-rejection

Vamos a eliminar completamente el rechazo rápido ya que la característica original estaba rota y causaba problemas a los usuarios, específicamente este tipo de cosas:

y también afecta al correo reenviado ya que la prueba previa a la entrega comprobaba el envelope-from y el envelope-to, mientras que Discourse solo utiliza los valores en las cabeceras.

1 me gusta

Acabo de enviar este PR para eliminar las comillas innecesarias alrededor del valor de DISCOURSE_BASE_URL en el archivo de muestra mail-receiver.yml. Las comillas estaban rompiendo mi configuración. Eliminar las comillas permite la finalización exitosa de este documento.

¿Puedes explicar cómo? La presencia/ausencia de comillas alrededor de este valor no produce ninguna diferencia:

[2] pry(main)=> YAML::load("env:\n  DISCOURSE_BASE_URL: 'https://discourse.example.com'")
=> {"env"=>{"DISCOURSE_BASE_URL"=>"https://discourse.example.com"}}

[3] pry(main)=> YAML::load("env:\n  DISCOURSE_BASE_URL: https://discourse.example.com")
=> {"env"=>{"DISCOURSE_BASE_URL"=>"https://discourse.example.com"}}

Cuando seguía los registros de ese contenedor y le enviaba mensajes, veía muchos errores que mencionaban algo como discourse.example.com no forma parte de los registros MX o algo parecido. Quité las comillas, reconstruí el contenedor y empezó a funcionar :person_shrugging:

La secuencia de eventos también puede ser importante:

  1. Configuré y lancé el contenedor receptor de correo (mail-receiver)
  2. Días después configuré los registros DNS MX
  3. Validé que los registros MX estaban configurados correctamente y luego comencé a probar. No funcionaba
  4. Quité las comillas, reconstruí el contenedor, empezó a funcionar

Así que no estoy seguro de si la solución estuvo relacionada con la eliminación de las comillas, o con la reconstrucción del contenedor después de que se crearan los registros MX.

En el peor de los casos, el PR hace que el yml se vea consistente :slight_smile:

1 me gusta