Posso reenviar uma mensagem com (simples) mailx?

3

Digamos que receba uma mensagem com um anexo e tudo o que quero fazer é reenviar esta mensagem para outro endereço. É possível fazer isso usando o simples mailx? Se sim, como? Eu sei que o Heirloom mailx tem um comando resend, mas eu queria saber se é possível conseguir esse resultado usando versões mais primitivas do mailx.

    
por ezequiel-garzon 25.02.2015 / 23:33

1 resposta

3

De acordo com a documentação da herança mailx:

resend: Takes a list of messages and a user name and sends each message to the named user. 'Resent-From:' and related header fields are prepended to the new copy of the message.

Para uma maneira básica de obter o mesmo efeito, você nem precisa usar um MUA. Você pode simplesmente usar o shell e os pipes para enviar a mensagem diretamente para o MTA / MSP. Então, se você tiver a mensagem (cabeçalhos + corpo) localizada em um arquivo chamado foo :

(
    echo "Resent-From: your.email@address
    cat foo
) | /usr/lib/sendmail [email protected]

Observe que o MTA instalado no sistema não precisa ser o Sendmail para que isso funcione. /usr/lib/sendmail é apenas a interface padrão de envio de correio UNIX. Outros MTAs como o Postfix e o Exim fornecem /usr/lib/sendmail também.

Observe também que não levei em conta os "campos de cabeçalho relacionados" mencionados na documentação. Eu não chequei, eu acho que eles são Resent-Date e coisas assim. Se você sabe o que é e se importa incluí-los, basta adicioná-los como echo das declarações acima.

Finalmente, eu notarei que mesmo o mailx da herança tem um modo adicional chamado "Reenviar" (note maiúscula R) documentado como segue:

Like resend, but does not add any header lines. This is not a way to hide the sender's identity, but useful for sending a message again to the same recipients.

Então, se você realmente quer isso, é ainda mais simples porque você acabou de enviar a mensagem existente como está:

/usr/lib/sendmail somebody@else < foo
    
por 26.02.2015 / 00:33

Tags