Estou enviando email de um script usando mailx. O script é executado diariamente pelo systemd, usando arquivos .service e .timer. Para fins de teste, estou enviando pela linha de comando.
O e-mail é enviado com o comando
echo "Test message - you know the drill" | mailx -r "[email protected]" -s "Test Message" [email protected]
(dados pessoais substituídos para privacidade)
Isso funciona. Ele é retransmitido pelo postfix para o meu servidor gateway (também postfix), que assina a mensagem de saída. Isso é então entregue ao GMail, que verifica os dados SPF e a assinatura DKIM, e a mensagem é entregue na minha caixa de entrada.
Isso é bom, exceto que é exibido comoUbuntu <[email protected]>
Tenho outros servidores enviando e-mails pelo mesmo método e todos são exibidos de forma semelhante.
Gostaria de alterar o nome de exibição para algo mais útil, por servidor. Por exemplo, Web Server <[email protected]>
mas algo que estou fazendo é bagunçar o From
endereço enquanto ele viaja para o servidor gateway.
eu tentei
echo "Test message - you know the drill" | mailx -r "Web Server [email protected]" -s "Test Message" [email protected]
e
echo "Test message - you know the drill" | mailx -r "Web Server <[email protected]>" -s "Test Message" [email protected]
Mas em ambos os casos o endereço De é de alguma forma perdido pelo PostFix local, e a mensagem enviada ao servidor gateway tem um from
endereço de [email protected]
onde smtp.private.example.uk
está o FQDN do servidor gateway. Isso é enviado para o GMail, mas falha nos testes SPF e DKIM e, como resultado, é despejado sem cerimônia em spam. (Não sei como o postfix local está obtendo o nome do servidor gateway)
Então, como posso adicionar o nome de exibição aos parâmetros que passo para o mailx, de modo que ele sobreviva à jornada de servidor para servidor e seja exibido corretamente pelo GMail?
Mailx versão 3.14 (GNU Mailutils) Ubuntu 22.04
Fiz apenas uma alteração main.cf
no PostFix: adicionei um endereço de host de retransmissão para o servidor gateway.
Como você deseja usar programas pré-instalados e tem o postfix instalado, podemos usar o modo postfix para lhe dar maior controle sobre o que você envia e sua aparência.
Isso é feito através do
sendmail -t
. Neste modo usamos o postfix como um agente de envio de correio (MSA), que é o quemailx
faz de qualquer maneira, e você pode especificar todo o cabeçalho e corpo, e o postfix irá enviá-lo "como está"Um método simples é usar
echo
.por exemplo
Isso permite que você defina qualquer cabeçalho com qualquer valor que desejar.
Agora, isso não altera o remetente do envelope , então o nome original fica visível em outras linhas, então não é perfeito (mas você conseguiria isso
mailx
se o endereço De não corresponder ao endereço da conta), mas evita complicaçõesmailx
ou outros agentes de usuário de correio (MUAs) podem trazer.