Login
Login

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

Como enviar e-mails no Linux pela linha de comando com Sendmail e Mailx
Hostman Team
Technical writer
O sistema Linux Serviços de Webmail
26.11.2025
Reading time: 6 min

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?

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

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

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

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

Seja para enviar alertas ou gerar relatórios automáticos, sendmail e mailx oferecem versatilidade para diversas tarefas.

Pré-requisitos

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

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

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

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

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

1. Instale o Postfix

sudo apt install postfix

2. Edite a configuração do 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

3. Crie usuários de e-mail

sudo adduser linux

sudo adduser hostman

Isso cria endereços como linux@office.local.

Visão geral do sendmail

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

Debian/Ubuntu

sudo apt install sendmail

CentOS/Red Hat

sudo yum install sendmail

Iniciar e habilitar o serviço

sudo systemctl start sendmail

sudo systemctl enable sendmail

Testar a configuração

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

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

1. Crie um arquivo

nano email.txt

Conteúdo:

Subject: Test Email from Hostman

This is a test email sent using sendmail on Linux.

2. Enviar

sendmail recipient@example.com < email.txt

3. Verificar

mail

Enviar anexos com sendmail

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

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

Debian/Ubuntu

sudo apt install mailutils

Red Hat

sudo yum install mailx

Enviar e-mail com mailx

echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com

Enviar anexo com mailx

echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com

Conclusão

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.

O sistema Linux Serviços de Webmail
26.11.2025
Reading time: 6 min

Semelhante

O sistema Linux

Criando links simbólicos no Linux: um tutorial passo a passo

Symlinks, também conhecidos como links simbólicos, funcionam como atalhos no mundo Linux. Eles permitem criar um novo nome (ou link) que aponta para outro arquivo, diretório ou qualquer objeto dentro do sistema de arquivos. Sua principal vantagem é reduzir redundâncias, evitando a necessidade de manter várias cópias do mesmo arquivo. Quando você usa um symlink, alterações feitas no arquivo original são refletidas em todos os seus links simbólicos. Isso elimina a necessidade de atualizar diversas cópias manualmente. Além disso, symlinks oferecem uma forma flexível de gerenciar permissões de acesso. Por exemplo, usuários diferentes, com diretórios apontando para subconjuntos de arquivos, podem limitar a visibilidade além do que as permissões padrão permitiriam. Em essência, symlinks são indispensáveis para uma gestão eficiente de arquivos e organização, simplificando atualizações e controle de acesso em sistemas complexos. Requisitos Para seguir este tutorial, você vai precisar de: Um servidor em nuvem, máquina virtual ou computador rodando um sistema operacional Linux. Na Hostman, você pode implantar um servidor com Ubuntu, CentOS ou Debian em menos de um minuto. Criando links simbólicos com o comando ln O comando ln é usado para criar links simbólicos no Linux. Siga estas etapas: Abra uma janela do terminal. Navegue até o diretório onde deseja criar o link simbólico. Use a seguinte sintaxe para criar um symlink: ln -s /path/to/source /path/to/symlink Substitua /path/to/source pelo caminho real do arquivo ou diretório que deseja vincular e /path/to/symlink pelo nome/local desejado para o link simbólico. Entendendo as opções do comando ln O comando ln oferece várias opções para personalizar a criação de symlinks:  -s: Cria um link simbólico.  -f: Sobrescreve um symlink existente.  -n: Trata o destino do symlink como um arquivo comum. Explore essas opções conforme suas necessidades de criação de links. Criando links simbólicos para arquivos Para criar um symlink para um arquivo, use o comando ln com a opção -s. Aqui está um exemplo de como criar um link simbólico para um arquivo usando o comando ln. O comando abaixo cria um link simbólico chamado symlink_file no diretório atual, apontando para o arquivo /path/to/file: ln -s /path/to/file /path/to/symlink_file Substitua /path/to/file pelo caminho real do arquivo e /path/to/symlink_file pelo nome desejado do symlink. Neste exemplo, o caminho é absoluto. Você também pode criar um symlink usando um caminho relativo. No entanto, lembre-se de que, para que o symlink funcione corretamente, qualquer processo que o acesse deve primeiro definir o diretório de trabalho correto; caso contrário, o link pode parecer quebrado. Criando links simbólicos para diretórios Você pode usar o comando ln para criar um link simbólico que aponta para um diretório. Por exemplo, o comando abaixo cria um symlink chamado symlink_directory no diretório atual, apontando para /path/to/directory: ln -s /path/to/directory /path/to/symlink_directory Esse comando cria um link simbólico chamado symlink_directory na sua localização atual, vinculando-o ao diretório /path/to/directory. Sobrescrever um link simbólico à força Você pode usar a opção -f com o comando ln. Por exemplo, se o caminho em um symlink estiver incorreto devido a um erro de digitação ou se o destino tiver sido movido, você pode atualizar o link assim: ln -sf /path/to/new-reference-dir symlink_directory Usar a opção -f garante que o conteúdo do symlink antigo seja substituído pelo novo destino. Ela também remove automaticamente quaisquer arquivos ou symlinks conflitantes. Se você tentar criar um symlink sem -f e o nome já estiver em uso, o comando falhará. Verificando links simbólicos Você pode exibir o conteúdo de um symlink usando o comando ls -l no Linux: ls -l symlink_directory A saída mostrará o symlink e seu destino: symlink_file -> /path/to/reference_file Aqui, symlink_file é o nome do link simbólico, e ele aponta para o arquivo /path/to/reference_file. ls -l /path/to/symlink A saída mostrará o symlink e seu destino. Boas práticas para links simbólicos Use nomes descritivos para os links simbólicos. Evite links circulares para prevenir confusão no sistema. Atualize os symlinks se o local de destino mudar. Casos de uso para links simbólicos Gerenciamento de arquivos de configuração: Vincular arquivos de configuração entre sistemas. Controle de versão: Vincular simbolicamente bibliotecas comuns para projetos de desenvolvimento. Backup de dados: Criar symlinks para diretórios de backup. Possíveis problemas e soluções Problemas de permissão: Certifique-se de que as permissões corretas estejam definidas para a origem e o symlink. Links quebrados: Atualize symlinks se arquivos de destino forem movidos ou excluídos. Links entre sistemas de arquivos: Symlinks podem não funcionar entre sistemas de arquivos diferentes. Conclusão Symlinks são valiosos para otimizar o gerenciamento de arquivos e a manutenção do sistema. Eles simplificam atualizações entre várias aplicações que compartilham um arquivo comum, reduzindo a complexidade de manutenção. Também oferecem uma alternativa a diretórios como /etc, que geralmente exigem acesso root para modificar arquivos. Desenvolvedores acham os symlinks úteis para alternar facilmente entre arquivos locais de teste e versões de produção. Seguindo este tutorial, você dominou o processo de criação de links simbólicos no Linux. Aproveite os symlinks para uma gestão eficiente de arquivos e maior personalização.
15 December 2025 · 6 min to read
O sistema Linux

Comandos systemctl reiniciar, recarregar e parar um serviço

For Linux operating systems, systemctl is a system and service manager that is mostly used to manage services and their configurations. It is a component of systemd, which also handles other system-level functions, process management, and system boot. Maintaining a reliable and effective system requires knowing how to manage services. restart, reload, and stop are among the most significant commands; each has a distinct function in managing services.  This tutorial will go through these commands in details, covering their syntax, use cases, and real-world examples to help users grasp them and manage systems more successfully.  Entendendo o gerenciamento de serviços com systemctl A maioria das distribuições modernas de Linux utiliza o systemctl como a principal ferramenta de administração de serviços do sistema, um componente essencial para manter um ambiente Linux estável. O systemctl, parte da suíte systemd, ajuda administradores a habilitar, desabilitar, monitorar e controlar serviços. Dominar o systemctl pode melhorar a resposta, o desempenho e a confiabilidade do sistema. Um serviço — ou um conjunto de processos que operam em segundo plano para fornecer funções do sistema, como rede, compartilhamento de arquivos ou hospedagem de aplicações — é chamado de serviço no ambiente Linux. Embora esses serviços possam ser controlados manualmente, eles normalmente são iniciados automaticamente quando o sistema é inicializado. Serviços críticos, como servidores web, bancos de dados e ferramentas de rede, precisam ser gerenciados corretamente para garantir sua disponibilidade e funcionamento eficiente. Administradores podem reduzir o tempo de inatividade recarregando ou reiniciando serviços usando os comandos do systemctl, sem interferir nas atividades do sistema. Garanta que os serviços estejam disponíveis após uma reinicialização usando os comandos enable/disable para automatizar sua inicialização. Monitore o status dos serviços e logs para diagnosticar rapidamente problemas. Devido à sua versatilidade, o systemctl é uma ferramenta indispensável para a administração de serviços em qualquer sistema Linux. Iniciar um serviço usando systemctl Iniciar um serviço no Linux com systemctl é uma tarefa simples, porém essencial, para controlar diferentes processos em segundo plano, como servidores web, bancos de dados ou serviços de rede. Um serviço deve ser iniciado pelo usuário e autorizado a executar sua função designada. Use o comando abaixo para iniciar um serviço. sudo systemctl start <nome_do_servico> Onde: sudo: concede os privilégios administrativos necessários para iniciar o serviço. systemctl: o comando do Linux para gerenciar serviços. start: o comando que instrui o sistema a iniciar o serviço. <nome_do_servico>: o nome do serviço (por exemplo: apache2, nginx, ssh) que o usuário deseja iniciar. Exemplo: sudo systemctl start apache2 Esse comando instrui o serviço Apache a iniciar. Se o serviço já estiver em execução, nada visível acontecerá. Caso não esteja em execução, o comando o iniciará. Reiniciar um serviço usando systemctl Para administradores de sistemas Linux, reiniciar um serviço usando o systemctl é fundamental, pois o serviço é interrompido e iniciado novamente. Isso é especialmente útil ao solucionar problemas de serviços ou após alterações de configuração ou atualizações de software. Reiniciar um serviço garante que ele utilize a configuração ou o código mais recente. Use o comando abaixo para reiniciar um serviço. sudo systemctl restart <nome_do_servico> Exemplo: sudo systemctl restart apache2 Esse comando primeiro interrompe o serviço Apache e depois o reinicia. Isso é especialmente útil quando o usuário modificou o arquivo de configuração e deseja aplicar as alterações. Reiniciar um serviço pode ajudar a resolver problemas temporários ou liberar recursos. Quando um serviço não está funcionando corretamente, reiniciá-lo geralmente resolve o problema. Recarregar a configuração de um serviço com systemctl No Linux, um serviço pode aplicar novas alterações de configuração sem precisar ser completamente interrompido e reiniciado, utilizando o comando de recarga do systemctl. Isso é especialmente útil quando pequenas alterações são feitas na configuração e não se deseja interromper o funcionamento do serviço. Use o comando abaixo para recarregar um serviço. sudo systemctl reload <nome_do_servico> Exemplo: sudo systemctl reload apache2 Esse comando aplica as alterações feitas no arquivo de configuração do Apache sem reiniciar completamente o servidor, minimizando interrupções para os usuários. Recarregar é uma opção mais suave do que reiniciar, pois não encerra conexões ativas nem processos em execução. Parar serviços com systemctl Execute o comando abaixo para parar um serviço em execução. Se um serviço estiver configurado para iniciar automaticamente na inicialização do sistema, pará-lo interromperá apenas suas operações atuais, mas não impedirá que ele seja iniciado novamente na próxima reinicialização. Esse simples comando systemctl stop permite ao usuário encerrar processos sem alterar o comportamento de inicialização, sendo útil para o gerenciamento de serviços. sudo systemctl stop <nome_do_servico> Exemplo: sudo systemctl stop apache2 Verificar o status de serviços usando systemctl Monitorar e verificar se os serviços estão funcionando corretamente é uma das tarefas mais importantes da administração de sistemas Linux. Com o comando systemctl, é possível visualizar informações detalhadas sobre o status de um serviço, como se ele está ativo, inativo ou se apresentou algum problema. Após reiniciar ou recarregar um serviço, verificar seu status ajuda a confirmar que ele voltou a funcionar como esperado. Use o comando abaixo para visualizar o status atual de um serviço. sudo systemctl status <nome_do_servico> Exemplo: sudo systemctl status apache2 O comando status fornece informações detalhadas sobre o serviço, geralmente incluindo: Active State:  mostra se o serviço está em execução (active), parado ou em falha. Loaded State:  indica se o arquivo de unidade (arquivo de configuração) do serviço está carregado na memória. Main PID:  mostra o ID do processo principal do serviço. Recent Logs: exibe as entradas de log mais recentes relacionadas ao serviço para auxiliar na solução de problemas. Solução de problemas comuns Diversos problemas podem ocorrer ao gerenciar serviços no Linux usando o systemctl, incluindo encerramentos inesperados, falhas ao iniciar ou erros de configuração. Resolver esses problemas de forma eficaz é essencial para manter o desempenho e a estabilidade do sistema. A seguir estão os problemas mais comuns e os passos recomendados para solucioná-los. O comando sudo systemctl start retorna um erro ou não inicia o serviço conforme esperado. Execute sudo systemctl status <nome_do_servico> para obter detalhes sobre a causa da falha do serviço. Utilize journalctl para visualizar os logs do sistema relacionados ao serviço e identificar possíveis problemas subjacentes. O comando systemctl status mostra a causa da falha. Procure mensagens como "Main PID exited" ou "Job for <nome_do_servico> failed" para entender o problema. Muitas vezes, reiniciar o serviço pode corrigir falhas temporárias. Um serviço não inicia automaticamente após reiniciar o sistema. Certifique-se de que o serviço está configurado para iniciar automaticamente. Execute sudo systemctl is-enabled. Se ele não estiver habilitado, ative-o com systemctl enable <nome_do_servico>. O serviço não inicia ou não executa ações devido a erros de permissão. Verifique se o serviço possui permissões adequadas para acessar os arquivos e diretórios necessários. Por exemplo: servidores web precisam de permissão de leitura para arquivos de configuração e diretórios web. Confirme também que o serviço está sendo executado com o usuário ou grupo correto. Alguns serviços precisam ser executados por um usuário específico definido no arquivo de unidade. O serviço inicia com configuração incorreta ou alterações feitas no arquivo de unidade não são aplicadas. Execute sudo systemctl daemon-reload após modificar um arquivo de unidade para recarregar a gestão do systemd. Certifique-se de que o arquivo de unidade corresponde à configuração esperada e está localizado em /lib/systemd/system/ ou /etc/systemd/system/. Esses procedimentos podem ajudar a resolver a maioria dos problemas comuns relacionados a serviços gerenciados pelo systemctl no Linux. A estabilidade e a integridade do sistema podem ser preservadas revisando regularmente os logs e o status dos serviços. Conclusão Em conclusão, administradores de sistemas devem estar familiarizados com o uso do systemctl para gerenciar serviços no Linux. Ele oferece um conjunto de ferramentas avançadas para controlar, monitorar e solucionar problemas de serviços de forma eficiente. Compreender os comandos fundamentais — incluindo recarregar, parar, reiniciar e verificar o status de serviços — permite garantir que as funções essenciais do sistema operem corretamente. Seja ao gerenciar serviços de rede, bancos de dados ou servidores web, dominar o systemctl ajuda a manter um ambiente Linux estável e eficiente. Além disso, a habilidade de resolver problemas comuns, como falhas de serviços, erros de permissão ou problemas de configuração, contribui para reduzir o tempo de inatividade e preservar a confiabilidade do sistema. A integração do systemctl com o journalctl possibilita uma análise completa de logs, facilitando diagnósticos rápidos e soluções eficazes. Você pode testar nosso VPS Linux confiável para seus projetos. 
11 December 2025 · 9 min to read
O sistema Linux

Como listar usuários no Linux

Administrar e proteger um sistema Linux exige monitoramento e gerenciamento cuidadoso dos usuários. Saber quem está utilizando o sistema e quais ações estão sendo executadas é fundamental para manter a segurança e a eficiência de servidores e computadores Linux. Este guia apresenta vários métodos para verificar usuários no Linux, incluindo o uso do terminal e da interface gráfica (especificamente, o Gnome). Os métodos descritos ajudam você a obter informações sobre contas de usuário, suas atividades, histórico de login e muito mais. Existem diversas maneiras de listar contas de usuário. A seguir, mostramos como acessar a lista de usuários do Linux pelo terminal e pela interface gráfica. Terminal Nesta seção, exploraremos métodos para exibir usuários no Linux usando a linha de comando. Arquivo /etc/passwd O arquivo /etc/passwd contém informações sobre todos os usuários registrados no sistema. Cada linha representa uma conta de usuário e inclui: nome, senha, UID (ID do usuário), GID (ID do grupo), informações adicionais (GECOS), diretório home e shell de login. Para visualizar seu conteúdo: cat /etc/passwd Você também pode abrir o arquivo em um editor de texto como nano ou vim. Se você estiver usando um servidor em nuvem da Hostman com um usuário não administrador, o arquivo pode parecer assim: (Exemplo visual no documento original) As senhas aparecem como x por motivos de segurança. Elas são armazenadas no arquivo /etc/shadow. Para exibir apenas os nomes dos usuários: sed 's/:.*//' /etc/passwd Comando who O comando who mostra uma lista dos usuários ativos, incluindo nome, terminal, data e hora de login e, quando disponível, o endereço IP: who Se você precisa apenas dos nomes dos usuários atualmente conectados: users Diferença: who → fornece informações detalhadas users → lista apenas os nomes Comando w O comando w mostra uma visão detalhada dos usuários ativos, incluindo: atividades atuais, tempo de login, carga do sistema. Execute: w Comando last O comando last exibe o histórico de logins, incluindo datas, horários e origem das conexões. É útil para auditoria e segurança: last Comando lastlog O comando lastlog mostra o último login de cada usuário: lastlog Interface gráfica Para quem prefere trabalhar com interface gráfica, veja como verificar usuários em sistemas com o ambiente Gnome. Ferramentas semelhantes não são mais suportadas no KDE Plasma. Existem pelo menos duas formas de acessar a lista de usuários no Gnome. Menu “Usuários” Abra Configurações pelo menu do sistema. Procure e abra a aba Usuários. Clique em Desbloquear (canto superior direito) para liberar todas as funções. Na parte superior, você verá a lista de usuários existentes; abaixo, os detalhes e configurações de cada conta. Utilitário “Users” Você também pode instalar o utilitário adicional gnome-system-tools: sudo apt install gnome-system-tools (Em outras distribuições use dnf, pacman, etc.) Depois de instalado: Abra o menu de busca. Digite Usuários. Selecione o utilitário recém-instalado. A janela permitirá visualizar e editar contas, tipos de usuário, senhas e outras configurações. Resumo Se você usa o terminal, estes comandos são úteis: /etc/passwd — lista todas as contas existentes who — lista usuários ativos com detalhes w — mostra atividades atuais dos usuários last — mostra o histórico de logins lastlog — exibe o último login de cada usuário Se utiliza Linux com Gnome, você pode usar: o menu Usuários, ou o utilitário gnome-system-tools. Entender quem acessa seu sistema e quais ações executam ajuda a detectar problemas rapidamente e melhora a administração do sistema. Escolha o método que mais se adapta às suas necessidades.
11 December 2025 · 4 min to read

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support