He creado un registro DKIM en uno de mis sitios de alojamiento (pair.com) utilizando su sistema automatizado. Creé un registro TXT con el host y la clave DKIM en mi servidor DNS de DigitalOcean.
Si envío un correo electrónico a través de Thunderbird, DKIM pasa. Cuando Discourse envía un correo electrónico, utilizando exactamente la misma información de servidor/cuenta, obtengo:
La firma DKIM ocurre en el servidor de correo saliente, es decir, después de que Discourse se lo haya entregado al servidor SMTP que tiene configurado.
Si ves una discrepancia en el hash, eso sugiere que el correo ha sido modificado después de ser firmado o que el par de claves no coincide.
Si definitivamente estás usando detalles idénticos en Thunderbird y Discourse (¿has reiniciado el contenedor para asegurarte de que está usando los detalles que tienes en app.yml?), me sorprendería que se estuviera firmando con una clave diferente o usando un selector diferente, por lo que esperaría ver el mismo resultado si el par de claves no coincidiera.
¿Podría ser que la dirección del remitente sea diferente y tu proveedor de correo esté firmando de manera diferente según eso?
Esencialmente, algo está sucediendo después de que sale de Discourse. Si no puedes encontrar una causa obvia como la dirección del remitente, es posible que necesites contactar a tu proveedor de correo para averiguar qué está sucediendo.
Ejecuté una serie de pruebas adicionales y descubrí que el problema era que la dirección TO con la que estaba probando reenviaba el correo a Gmail. Si enviaba el correo directamente a Gmail, el hash pasaba.
Sin embargo, esto todavía me confunde, ya que miro las cabeceras de otros correos enviados a esta dirección y el hash DKIM pasa. ¿Por qué sería diferente esto?