Saltar para o conteúdo
102 · LPIC-1 (parte 2)

108.3 Fundamentos de MTA (Mail Transfer Agent)

TópicoT11ObjetivoCompreender os fundamentos de MTA (Mail Transfer Agent)Peso1PáginasLPIC-1 (102) - Version 5.0

Resumo Conciso

Conceitos Fundamentais

ConceitoDescrição
MTA (Mail Transfer Agent)Serviço que coleta e entrega emails entre máquinas
MUA (Mail User Agent)Aplicativo cliente de email (Thunderbird, mail, mailx)
SMTPProtocolo de transferência de email (porta TCP 25)
IMAP / POP3Protocolos para recuperar email de caixas remotas
mboxFormato de armazenamento: todas as mensagens num único ficheiro
Open RelayMTA que retransmite emails cegamente — vulnerabilidade de segurança

MTAs Disponíveis para Linux

MTACaracterísticas
SendmailMTA tradicional, flexível, bastante compatível
PostfixAlternativa popular, mais fácil de configurar
qmailAlternativa leve
EximAlternativa flexível

Todos pretendem ser substitutos diretos do Sendmail — aplicativos compatíveis com Sendmail costumam funcionar com qualquer MTA.

Localizações Importantes

CaminhoFunção
/var/spool/mqueue/Fila de saída (Sendmail)
/var/spool/postfix/Fila de saída (Postfix)
/var/spool/mail/<user>Caixa de entrada (Sendmail)
/var/mail/<user>Caixa de entrada (Postfix)
/etc/aliasesAliases de email do sistema
~/.forwardRedirecionamento pessoal de email

Para logs de email, ver T10.

Comandos Principais

ComandoFunção
sendmailComposição e envio de mensagens
mail / mailxCliente de email (modo leitura/envio)
mailq / sendmail -bpLista mensagens não entregues
newaliases / sendmail -biAtualiza banco de aliases
ncEnvio de comandos SMTP diretamente

Formato de Aliases (/etc/aliases)

bash
alias: destino

Tipos de destino:

  • Nome de utilizador: encaminha para caixa local (postmaster: carol)
  • Caminho de ficheiro: anexa ao ficheiro (logs: /var/log/mail.log)
  • Comando pipe: processa mensagem (subscribe: |subscribe.sh)
  • Ficheiro de inclusão: múltiplos destinos (team: :include:/var/local/destinations)
  • Endereço externo: encaminha para email externo
  • Outro alias: encadeamento

Fluxo de Envio de Email

  1. Utilizador compõe mensagem (MUA ou sendmail/mail)
  2. MTA local coloca na fila de saída
  3. MTA consulta DNS para registro MX do domínio destino
  4. MTA envia via SMTP ao MTA remoto
  5. MTA remoto armazena na caixa de entrada do destinatário

Exercícios Exploratórios

Exercício Exploratório 1 — Enviar email com anexo

Enunciado: Usando mail do mailx, qual comando enviará uma mensagem para [email protected] com logs.tar.gz como anexo e a saída de uname -a como corpo?

bash
uname -a | mail -a logs.tar.gz [email protected]

Exercício Exploratório 2 — Alias para /dev/null

Enunciado: Como configurar um alias em todo o sistema para redirecionar todos os emails enviados ao utilizador test para /dev/null?

Adicionar a seguinte linha em /etc/aliases:

bash
test: /dev/null

Executar newaliases para atualizar o banco de dados.

Exercício Exploratório 3 — Comando alternativo ao newaliases

Enunciado: Que comando, além de newaliases, pode atualizar o banco de aliases?

bash
sendmail -bi# ousendmail -I

Exercício Exploratório 4 — Verificar e limpar a fila de email

Enunciado: Liste as mensagens pendentes na fila de email e remova todas as mensagens da fila (Postfix).

bash
# Listar fila de emailmailq# ousendmail -bp# Remover todas as mensagens da fila (Postfix, como root)postsuper -d ALL

mailq mostra as mensagens pendentes com o seu ID, tamanho, data e destinatário. postsuper -d ALL remove todas as mensagens da fila (atenção: não pede confirmação). Para remover uma mensagem específica, use postsuper -d <ID>. Nota: sendmail -q não remove mensagens — processa/entrega a fila pendente.