A canonicalização simple de cabeçalhos não muda nada; a relaxed converte os nomes dos cabeçalhos para minúsculas, desdobra as linhas de continuação, reduz sequências de espaços em branco a um único espaço e remove os espaços em branco no fim das linhas e ao redor dos dois-pontos. A canonicalização simple do corpo só remove as linhas vazias no final (um corpo vazio vira um único CRLF); a relaxed também ignora os espaços em branco no fim de cada linha e reduz as sequências de espaços em branco. O padrão é simple/simple; a maioria dos signatários usa c=relaxed/relaxed.
Divergências no hash do corpo (body hash did not verify) normalmente significam que algo reescreveu o corpo depois da assinatura: um rodapé, a conversão de finais de linha, uma nova codificação de partes quoted-printable ou base64 ou a quebra de linhas. Falhas de assinatura nos cabeçalhos costumam vir da reordenação ou do redobramento de cabeçalhos por gateways, o que a relaxed tolera e a simple não. O depurador de DKIM mostra os bytes canonicalizados sobre os quais calculou o hash.