Learning Center
O sistema Linux

Como enviar e-mails no Linux pela linha de comando com Sendmail e Mailx

26 nov. 2025
Hostman Team
Hostman Team

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:

  1. Servidores SMTP externos

  2. 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.