wils@web ~ $ cat ~/ajuda/como-usar-bash-para-automatizar-o-envio-de-relatorios-em-pdf-por-e-mail-no-linux.md

Desenvolvimento

Como usar Bash para automatizar o envio de relatórios em PDF por e-mail no Linux

atualizado em 24/08/2026

Automatizar o envio de relatórios em PDF por e-mail no Linux pode ser uma tarefa simples e eficiente utilizando o Bash. Neste manual, você aprenderá a criar um script que gera um PDF e o envia por e-mail automaticamente.

Pré-requisitos

  • Linux instalado (Ubuntu, CentOS, etc.)
  • Pacotes mailutils e libreoffice instalados
  • Um servidor de e-mail configurado (ex: Sendmail, Postfix)

Passo a Passo

1. Instalar Dependências

sudo apt-get update
sudo apt-get install mailutils libreoffice

2. Criar o Relatório em PDF

Você pode usar o LibreOffice para criar um relatório em PDF. Salve o arquivo como relatorio.odt.

libreoffice --headless --convert-to pdf relatorio.odt

3. Criar o Script Bash

Abra seu editor de texto favorito e crie um arquivo chamado envia_relatorio.sh:

nano envia_relatorio.sh

Adicione o seguinte conteúdo ao arquivo:

#!/bin/bash

# Caminho do arquivo PDF
PDF_FILE="relatorio.pdf"

# Destinatário
DESTINATARIO="[email protected]"

# Enviar e-mail
echo "Relatório em PDF em anexo." | mail -s "Relatório Mensal" -A "$PDF_FILE" "$DESTINATARIO"

4. Tornar o Script Executável

chmod +x envia_relatorio.sh

5. Executar o Script

./envia_relatorio.sh

Conclusão

Agora você tem um script que automatiza o envio de relatórios em PDF por e-mail. Para agendar este script, você pode usar o cron. Edite o crontab com crontab -e e adicione uma linha como:

0 9 1 * * /caminho/para/envia_relatorio.sh

Isso irá enviar o relatório no primeiro dia de cada mês às 9h.

Dica: Sempre verifique os logs do servidor de e-mail para solucionar problemas de envio.

Precisa de ajuda com isso no seu servidor? A gente resolve pra você.

falar no WhatsApp

// deu erro ou não funcionou?

Achou algo errado neste manual?

Conta pra gente o que deu errado ou qual erro apareceu — a gente corrige. Se quiser retorno, deixe seu contato.