Comandos do Exim para o dia a dia: ver e contar a fila, achar mensagens com exiqgrep, ler cabeçalho, apagar spam em massa e pesquisar o exim_mainlog.
Referência dos comandos do Exim que mais aparecem na rotina de quem administra servidor de e-mail. Todos rodam como root. Nos exemplos, ID é o identificador de uma mensagem na fila, como aparece na terceira coluna do exim -bp, e os endereços são fictícios.
Antes de começar
- Acesso root pelo SSH (veja como acessar o SSH como root).
- No cPanel, os logs ficam em
/var/log/exim_mainlog(tudo),/var/log/exim_rejectlog(recusas) e/var/log/exim_paniclog(erros graves do próprio Exim). - Prefira congelar a apagar quando estiver em dúvida. Mensagem apagada não volta.
Ver a fila de e-mails
| Comando | O que faz |
|---|---|
exim -bpc | Mostra só o número de mensagens na fila. |
exim -bp | Lista a fila: tempo na fila, tamanho, ID, remetente e destinatários. |
exim -bp | exiqsumm | Resume a fila por domínio de destino: quantas mensagens, volume e idade. |
exiwhat | Mostra o que cada processo do Exim está fazendo agora. |
Quem mais tem mensagens na fila, por remetente:
exim -bp | awk '/^ *[0-9]+[mhd]/{print $4}' | sort | uniq -c | sort -rn | head
Procurar mensagens com exiqgrep
| Comando | Encontra |
|---|---|
exiqgrep -f [email protected] | mensagens de um remetente (aceita expressão regular) |
exiqgrep -r @gmail.com | mensagens para um destinatário ou domínio |
exiqgrep -o 86400 | mensagens com mais de 1 dia na fila (valor em segundos) |
exiqgrep -y 3600 | mensagens com menos de 1 hora na fila |
exiqgrep -z e exiqgrep -x | só as congeladas (frozen) e só as não congeladas |
Acrescente -i para listar só os IDs (é o formato que os comandos de ação esperam) e -c para contar. Exemplo: exiqgrep -c -f [email protected].
Examinar uma mensagem
| Comando | Mostra |
|---|---|
exim -Mvh ID | cabeçalhos (remetente real, assunto, por onde entrou) |
exim -Mvb ID | corpo da mensagem |
exim -Mvl ID | histórico de entrega daquela mensagem |
X-PHP-Originating-Script, X-Source e X-Source-Dir. Eles mostram qual script do site gerou o e-mail. É o primeiro passo para achar um script que envia spam.Agir sobre uma mensagem
| Comando | O que faz |
|---|---|
exim -M ID | força uma tentativa de entrega agora, mesmo congelada |
exim -Mf ID | congela (o Exim para de tentar entregar) |
exim -Mt ID | descongela |
exim -Mg ID | desiste da entrega e devolve ao remetente como cancelada pelo administrador |
exim -Mrm ID | apaga da fila, sem aviso ao remetente |
Todos aceitam vários IDs separados por espaço.
Ações em massa
# congela tudo de um remetente (primeira coisa a fazer num envio de spam)
exiqgrep -i -f [email protected] | xargs -r exim -Mf
# apaga tudo de um remetente
exiqgrep -i -f [email protected] | xargs -r exim -Mrm
# apaga as mensagens congeladas
exiqgrep -z -i | xargs -r exim -Mrm
# apaga as devoluções (remetente vazio) paradas na fila
exiqgrep -i -f '^<>$' | xargs -r exim -Mrm
# apaga o que está na fila há mais de 5 dias
exiqgrep -o 432000 -i | xargs -r exim -Mrm
# processa a fila inteira agora, mostrando o andamento
exim -qff -v
exiqgrep -i | xargs exim -Mrm sem filtro apaga a fila inteira, inclusive e-mails legítimos de clientes que estavam aguardando uma nova tentativa. Antes de qualquer remoção em massa, rode o mesmo exiqgrep com -c para ver quantas mensagens serão afetadas.Pesquisar no log
No exim_mainlog, <= marca a chegada de uma mensagem, => uma entrega, ** uma falha definitiva e == um adiamento.
# toda a história de uma mensagem (chegada, tentativas, entrega)
exigrep ID /var/log/exim_mainlog
# tudo que envolveu um endereço
exigrep [email protected] /var/log/exim_mainlog
# falhas definitivas de hoje
grep "$(date +%F)" /var/log/exim_mainlog | grep ' \*\* '
Para logs antigos, compactados pela rotação: zgrep ID /var/log/exim_mainlog-*.gz.
Consultar a configuração
| Comando | O que faz |
|---|---|
exim -bV | versão do Exim e recursos compilados |
exim -bP | todas as opções da configuração em uso |
exim -bP log_selector | uma opção específica |
exim -bt [email protected] | mostra para onde o Exim entregaria esse endereço (local, encaminhamento, remoto) |
As mesmas tarefas pelo WHM
- WHM » Email » Mail Queue Manager: lista, filtra, entrega e apaga mensagens da fila.
- WHM » Email » Mail Delivery Reports: pesquisa entregas e falhas por remetente, destinatário ou domínio.
- WHM » Service Configuration » Exim Configuration Manager: altera a configuração do Exim sem editar o
/etc/exim.confà mão (edições diretas são sobrescritas pelo cPanel).
Para reiniciar o Exim num servidor cPanel: /scripts/restartsrv_exim.