Smtp_should_reject 400 solicitud incorrecta en nonces

Hola

Básicamente, tengo el mismo problema descrito aquí: Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver - #482 by Carleas

El problema parece ser que los rebotes que recibo no vienen con un from, por lo que cuando se realiza la llamada a la API como https://forum.example.com/admin/email/smtp_should_reject.json?from=&to=replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com devuelve un 400 con:

{"errors":["param is missing or the value is empty or invalid: from"]}

Aquí hay un poco más de los registros del receptor de correo:

Nov 03 07:34:53 mail postfix/smtpd[1044]: connect from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]
<19>Nov  3 07:34:53 discourse-smtp-fast-rejection[1048]: Failed to GET smtp_should_reject answer from https://forum.example.com/admin/email/smtp_should_reject.json: 400<22>Nov  3 07:34:53 policyd-spf[1049]: : prepend Received-SPF: None (no SPF record) identity=helo; client-ip=74.91.xxx.108; helo=v-148-29-xxx-192-srvr1.xxx.com; envelope-from=<> ; receiver=mail.forum.example.com Nov 03 07:34:53 mail postfix/smtpd[1044]: NOQUEUE: reject: RCPT from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]: 450 4.7.1 <replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com>: Recipient address rejected: Internal error, API request failed; from=<> to=<replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com> proto=ESMTP helo=<v-148-29-xxx-192-srvr1.xxx.com>

Sin embargo, incluso si viniera con un from correcto (poniendo mi correo allí), devuelve:

{"reject":true,"reason":"Mail to this address is not accepted. Check the address and try to send again?"}

Así que también lo habría rechazado…

¿Me falta algo en la configuración? No puedo entenderlo.

1 me gusta

¡Hola! Lamentablemente, parece que tu tema no ha recibido ninguna respuesta. ¿Pudiste resolver tu problema por tu cuenta?

¿Qué proveedor de correo electrónico utilizas?

No, desafortunadamente, no estoy recibiendo los rebotes…

Sin embargo, estoy usando un servidor SMTP de CPanel.

¿Qué hay de su proveedor de correo electrónico saliente? ¿Están usando Mailgun o algún otro proveedor de correo electrónico transaccional?

No. El mismo SMTP, el saliente funciona perfectamente, y el entrante para los temas también llega perfectamente, el problema es que los rebotes no son visibles para el foro, por lo que sigue intentándolo y mi proveedor de alojamiento me regaña.

Te lo paso a #hosting.

La respuesta oficial habitual para este tipo de cosas, desafortunadamente, es decir “el correo electrónico es difícil”. Obtendrás resultados mucho mejores si utilizas un proveedor de correo electrónico transaccional.

Si tienes presupuesto, puedes publicar en Marketplace o puedo mover este tema allí por ti.

¡Gracias por tomarte al menos el tiempo de analizar esto conmigo!

1 me gusta

Hola DevTeVe,

He revisado el código en cuestión y creo que tienes razón: creo que el código smtp_should_reject puede estar rechazando incorrectamente los mensajes de rebote y las respuestas.

Lo estoy escalando internamente.

Mientras tanto, si deshabilitas el filtro de política discourse-smtp-fast-rejection, ¿permite que el correo fluya?

2 Me gusta

¡Guau! ¡Gracias por escalarlo! Estaba un poco desesperado, ¡jajaja! Intentaré deshabilitar discourse-smtp-fast-rejection (aunque no estoy seguro de cómo hacerlo, pero buscaré e informaré).

1 me gusta

Si puedes eliminar esta línea del archivo de configuración de postfix mail-receiver:

smtpd_recipient_restrictions = check_policy_service unix:private/policy

Esto debería funcionar. No lo he probado, pero creo que funcionará:

postconf -e "smtpd_recipient_restrictions ="
1 me gusta

¡Éxito!

Estoy haciendo mi mail-receiver.yaml así (¿mientras tanto o para siempre? @supermathie)

# esta es la plantilla del contenedor receptor de correo entrante
##
## 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 MUY, MUY SENSIBLES A ERRORES EN ESPACIOS 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 propio foro aquí.
  MAIL_DOMAIN: community.example.com
# descomente estas (¡y el volumen de abajo!) para admitir TLS
  POSTCONF_smtpd_tls_key_file:  /letsencrypt/community.example.com/community.example.com.key
  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/community.example.com/community.example.com.crt
  POSTCONF_smtpd_tls_security_level: may
  POSTCONF_myhostname: community.example.com
  POSTCONF_mynetworks: "127.0.0.0/8 [::1]/128 [fe80::]/64 172.17.0.0/16"
  POSTCONF_smtpd_recipient_restrictions: ""
  ## 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://community.example.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: <YOURKEY>

  ## 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/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/
      guest: /letsencrypt
1 me gusta

Vamos con “por ahora” y actualizaremos este tema cuando tengamos más noticias.

3 Me gusta

¡Muchas gracias! Realmente no esperaba que esto avanzara más, ¡pero ahora es perfecto y estoy recibiendo todos los demás rebotes!

3 Me gusta