Como enviar e-mails no Linux pela linha de comando com Sendmail e Mailx
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.
Por que usar ferramentas de e-mail pela linha de comando? Copiar link
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:
Eficiência Copiar link
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.
Automação Copiar link
Integrando-se facilmente com scripts shell, processos cron e ferramentas de monitoramento, elas permitem automatizar notificações e alertas recorrentes.
Depuração de problemas SMTP Copiar link
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.
Flexibilidade Copiar link
Seja para enviar alertas ou gerar relatórios automáticos, sendmail e mailx oferecem versatilidade para diversas tarefas.
Pré-requisitos Copiar link
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.
Configurando um servidor SMTP Copiar link
Os servidores SMTP são essenciais para o envio de e-mails. Eles se dividem em duas categorias:
-
Servidores SMTP externos
-
Servidores SMTP locais
Servidores SMTP externos Copiar link
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
Exemplos Copiar link
Gmail
-
Endereço: smtp.gmail.com
-
Porta: 587 (TLS) ou 465 (SSL)
Outlook
-
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.
Servidores SMTP locais Copiar link
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
Configurando um servidor SMTP local Copiar link
1. Instale o Postfix Copiar link
sudo apt install postfix
2. Edite a configuração do Postfix Copiar link
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
3. Crie usuários de e-mail Copiar link
sudo adduser linux
sudo adduser hostman
Isso cria endereços como linux@office.local.
Visão geral do sendmail Copiar link
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.
Instalando o sendmail Copiar link
Debian/Ubuntu Copiar link
sudo apt install sendmail
CentOS/Red Hat Copiar link
sudo yum install sendmail
Iniciar e habilitar o serviço Copiar link
sudo systemctl start sendmail
sudo systemctl enable sendmail
Testar a configuração Copiar link
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
Configurar o sendmail Copiar link
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
Enviar e-mail com sendmail Copiar link
1. Crie um arquivo Copiar link
nano email.txt
Conteúdo:
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
2. Enviar Copiar link
sendmail recipient@example.com < email.txt
3. Verificar Copiar link
mail
Enviar anexos com sendmail Copiar link
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
Visão geral do mailx Copiar link
mailx é uma ferramenta simples e eficiente para gerenciar e-mails via terminal. Ela faz parte do pacote mailutils na maioria das distribuições.
Instalar o mailx Copiar link
Debian/Ubuntu Copiar link
sudo apt install mailutils
Red Hat Copiar link
sudo yum install mailx
Enviar e-mail com mailx Copiar link
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
Enviar anexo com mailx Copiar link
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Conclusão Copiar link
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.