Estou solucionando um problema intermitente em que alguns caracteres internacionais parecem estar malformados depois de passar pelo sendmail.
Recentemente, encontrei este artigo que descreve o F=7
sinalizador do agente de entrega. Especificamente, o artigo menciona que
A partir da V8.7, o sinalizador do agente de entrega F=7 pode ser usado para suprimir certos tipos de conversões MIME. Por exemplo, se a opção EightBitMode (EightBitMode na página 1025) for definida como
p
(pass 8) e se a mensagem contiver dados MIME de 8 bits em seu corpo, esse sinalizador de agente de entrega F=7 forçará o sendmail a devolver a mensagem com o seguinte erro de SMTP e para sair com EX_DATAERR:
Minha pergunta é: o que o sendmail procura especificamente para determinar se o MTA downstream suporta mime de 8 bits? Em resposta a um EHLO
, o servidor downstream está anunciando:
250-PIPELINING
250-SIZE 200000000
250-VRFY
250-STARTTLS
250-ENHANCEDSTATUSCODES
250 8BITMIME
Observe que é 250 8BITMIME
e não 250-8BITMIME
(com o traço). Isso seria suficiente para o sendmail considerar que a fonte remota não suporta 8bitmime?
Não. Isso é chamado de continuação e significa apenas que a linha é a última linha da resposta SMTP.
E geralmente 8BITMIME deve ser a única coisa necessária para mostrar que o MTA do outro lado é capaz de lidar com mensagens de 8 bits. (Este é o marcador de extensão do RFC6152 relevante.)