Criei um registro DKIM em um dos meus sites de hospedagem (pair.com) usando o sistema automatizado deles. Criei um registro TXT com o host e a chave DKIM no meu servidor DNS DigitalOcean.
Se eu enviar um e-mail via Thunderbird, o DKIM passa. Quando o Discourse envia um e-mail, usando exatamente as mesmas informações de servidor/conta, recebo:
A assinatura DKIM ocorre no servidor de e-mail remetente, ou seja, depois que o Discourse o entrega ao servidor SMTP configurado para uso.
Se você está vendo uma incompatibilidade de hash, isso sugere que o e-mail foi modificado após ser assinado ou que o par de chaves não corresponde.
Se você está definitivamente usando detalhes idênticos no Thunderbird e no Discourse (você reiniciou o contêiner para garantir que ele esteja usando os detalhes que você tem em app.yml?), eu ficaria surpreso se ele estivesse sendo assinado com uma chave diferente ou usando um seletor diferente, então eu esperaria ver o mesmo resultado se o par de chaves não correspondesse.
Pode ser que o endereço do remetente seja diferente e seu provedor de e-mail esteja assinando de forma diferente com base nisso?
Essencialmente, algo está acontecendo depois que ele saiu do Discourse. Se você não conseguir encontrar uma causa óbvia, como o endereço do remetente, talvez precise entrar em contato com seu provedor de e-mail para descobrir o que está acontecendo.
Executei uma série de testes adicionais e descobri que o problema era que o endereço TO com o qual eu estava testando encaminhava o e-mail para o Gmail. Se eu enviasse o e-mail diretamente para o Gmail, o hash passava.
No entanto, isso ainda me confunde, pois olho os cabeçalhos de outros e-mails enviados para este endereço, e o hash DKIM passa. Por que isso seria diferente?