Email no Unix (mail/mailx) – Como enviar arquivo anexo

Como fazer para enviar um arquivo anexo através do comando mail ou mailx no Unix?

Por exemplo, pode ser necessário enviar um arquivo anexo em emails enviados através de scripts que realizam funções administrativas. Além do anexo, podemos enviar junto o conteúdo no corpo do email (body).

Seguem os passos para enviar um email contendo um arquivo compactado (.zip) e conteúdo no corpo do email:

1 – Compactar arquivos, gerando arquivo zip:

/usr/bin/zip arquivo.zip $diretorio/*ERR*

2 – Gerar o anexo. Para isso usamos o comando uuencode:

 /usr/bin/uuencode arquivo.zip arquivo.zip > attachment.txt

OBS: Sim, o nome do arquivo zip é repetido 2 vezes no comando. Não é erro de digitação. 🙂

3 – Combinar o anexo com o texto que irá no corpo do email:

cat texto_email.txt attachment.txt > combinado.txt

O arquivo texto_email.txt contém o que irá escrito no corpo do email.

4 -Enviar o email com conteúdo no corpo do email e arquivo zip anexo:

/usr/bin/mailx -s "Email com anexo e conteúdo" [email protected] < combinado.txt

A opção “-s” é para colocar o Assunto/Subject do email.

One thought on “Email no Unix (mail/mailx) – Como enviar arquivo anexo”

  1. Oi Carla.

    Estava procurando por este comando para anexar arquivo tem uns 2 dias. Achei outras fontes mas a sua foi a melhor. Me ajudou bastante.

    Já adicionei seu site nos meus Favoritos. 🙂

    Estou enviando uma dica que também é legal.
    Aqui na empresa, eu configuro os e-mails de alerta dos servidores linux, para serem enviados com o remetente do help-desk.

    O comando fica assim:

    /bin/mail -s Subject [email protected] — -f [email protected] < attachment.txt

Leave a Reply

Your email address will not be published. Required fields are marked *