A questão dead.letter
é fácil de explicar: Esta é a reação padrão se um e-mail deve ser enviado, mas nenhum método de entrega pode ser encontrado pelo software de envio de e-mail.
Então, você precisa descobrir por que esse script não funciona enquanto os outros não funcionam.
O primeiro passo para tentar é executar os comandos de correio de um sucesso e os scripts com falha a partir da linha de comando. Com isso, descubra se é uma opção de linha de comando errada (isso pode variar entre distribuições) ou alguma diferença ambiental (como variável de ambiente, aliases de shell ou funções de shell).
Se você puder reproduzir a diferença na linha de comando, verifique os parâmetros e corrija-os.
Se você não puder, insira uma linha which mail
antes da linha de envio de email no script com falha, para que você veja se está executando o mail
binário, um alias de shell ou uma função de shell.
Se o script com falha estiver executando o binário esperado, ele poderá ser uma variável de ambiente que esteja configurando de uma maneira que atenda ao RHEL, mas não ao CentOS.
Em outras palavras: investigue possíveis diferenças até encontrar o culpado.