Para quem gerencia servidores ou trabalha com automação, saber enviar e-mails diretamente pelo terminal Linux é essencial. Isso oferece controle total sobre as funções de e-mail e elimina a necessidade de programas complexos. É especialmente útil em cenários onde velocidade e simplicidade são prioridades.
Ferramentas comuns como sendmail e mailx são amplamente usadas para enviar mensagens, verificar configurações SMTP, automatizar alertas e integrar com scripts. Elas são simples, porém eficazes — perfeitas para informar equipes sobre atualizações do servidor, gerar relatórios automáticos ou testar configurações de e-mail.
Este guia foi criado para usuários que desejam gerenciar e-mails diretamente via terminal. Ele aborda a instalação das ferramentas essenciais e também tarefas mais avançadas, como enviar anexos e configurar os utilitários de e-mail.
As duas ferramentas mais comuns — sendmail e mailx — são opções confiáveis para envio de e-mails no Linux e oferecem diversas vantagens:
Clientes de e-mail tradicionais podem ser lentos e consumir muitos recursos. Já essas ferramentas enviam e-mails de forma rápida e leve diretamente pela linha de comando.
Integrando-se facilmente com scripts shell, processos cron e ferramentas de monitoramento, elas permitem automatizar notificações e alertas recorrentes.
A depuração de configurações SMTP se torna mais simples. Esses comandos oferecem visibilidade sobre o processo de entrega, facilitando a análise de logs e erros.
Seja para enviar alertas ou gerar relatórios automáticos, sendmail e mailx oferecem versatilidade para diversas tarefas.
Antes de usar esses utilitários de e-mail no Linux, certifique-se de ter:
Acesso ao terminal: Em alguns casos, permissões de root podem ser necessárias.
Um servidor SMTP: Necessário para testar o envio de e-mails.
Utilitários instalados: Verifique se sendmail e mailx estão instalados e funcionam corretamente.
Os servidores SMTP são essenciais para o envio de e-mails. Eles se dividem em duas categorias:
Servidores SMTP externos
Servidores SMTP locais
São servidores de e-mail hospedados por terceiros. Enviam mensagens para destinatários fora da sua rede local e garantem:
Entrega global
Autenticação
Criptografia
Prevenção de spam
Endereço: smtp.gmail.com
Porta: 587 (TLS) ou 465 (SSL)
Endereço: smtp.office365.com
Porta: 587
Esses servidores exigem métodos de autenticação (usuário, senha ou senhas de app) e criptografia TLS/SSL.
Nota: Já fornecemos um guia para configurar SMTP externo. O comando para envio via Postfix é o mesmo — basta ajustar as credenciais e substituir o endereço de e-mail pelo do Gmail ou outro provedor desejado.
Operam exclusivamente dentro de uma rede interna. São ideais para:
Enviar e-mails entre usuários internos (ex.: tom@office.local → jerry@office.local)
Testes e desenvolvimento locais
Comunicação interna
Funcionam sem acesso à internet
sudo apt install postfix
sudo nano /etc/postfix/main.cf
Ajuste ou confirme:
myhostname = mail.office.local
mydomain = office.local
myorigin = $mydomain
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Salve e reinicie:
sudo systemctl restart postfix
sudo adduser linux
sudo adduser hostman
Isso cria endereços como linux@office.local.
sendmail é um famoso agente de transferência de e-mail (MTA) no Linux. Ele funciona perfeitamente com servidores SMTP e permite enviar mensagens a partir do sistema local ou scripts.
sudo apt install sendmail
sudo yum install sendmail
sudo systemctl start sendmail
sudo systemctl enable sendmail
echo "Testing sendmail setup" | sendmail -v your-email@example.com
Verifique as mensagens recebidas:
mail
Se não funcionar, instale mailutils:
sudo apt install mailutils
Ou visualize diretamente:
cat /var/mail/user
sudo nano /etc/mail/sendmail.mc
Exemplo: definir o domínio:
define(`confDOMAIN_NAME', `your_domain.com')dnl
Gerar novo arquivo de configuração:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Se ocorrer erro de permissão:
sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"
Reinicie o serviço:
sudo systemctl restart sendmail
nano email.txt
Conteúdo:
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
sendmail recipient@example.com < email.txt
mail
sendmail não suporta anexos nativamente, mas é possível usar uuencode:
sudo apt install sharutils
Exemplo:
( echo "Subject: Email with attachment"; uuencode file.txt file.txt ) | sendmail recipient@example.com
Verificar:
mail
mailx é uma ferramenta simples e eficiente para gerenciar e-mails via terminal. Ela faz parte do pacote mailutils na maioria das distribuições.
sudo apt install mailutils
sudo yum install mailx
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Enviar e-mails pela linha de comando no Linux é uma maneira poderosa de automatizar comunicações, depurar servidores ou testar configurações. Com sendmail e mailx, você pode lidar tanto com mensagens simples quanto com setups avançados com anexos. Este guia fornece instruções detalhadas para você começar facilmente e otimizar seu fluxo de trabalho.