Gerenciamento de servidor de e-mail com Exim

O Exim é um MTA open source responsável por receber, rotear e entregar mensagens de e-mail presente nas principais plataformas de hospedagens, como o cPanel.

O serviço de e-mail Exim esta presente nos painéis de hospedagens mais famosos do mercado, como é o exemplo do cPanel. Dessa forma é de extrema importância que saibamos gerenciar e administrar as suas funcionalidades.

O gerenciamento do Exim por sí só é bem tranquilo, é fácil identificar os usuários que enviam e-mails em massa e também as filas de e-mails. Dessa forma reuni alguns comandos que podem facilitar o seu gerenciamento de e-mail e detecção de spam.

Vamos começar com a parte mais simples, visualização e remoção de e e-mails que estão presos na fila de e-mail:

# Visualizar toda a fila de e-mail, quantidade por remetente
exim -bp | grep "<*>" | awk {'print $4'} | sort | uniq -c | sort -n

Para remoção de e-mail da fila existe alguns comandos que podem ser utilizados, remoção de e-mails congelados, que estão na fila a muito tempo, e até por remetente:

# Remove as mensagens na fila com mais de 24 horas.
exiqgrep -o 86400 -i | xargs exim -Mrm

# Apagar todos os e-mails congelados
exiqgrep -z -i | xargs exim -Mrm

# Apaga email congelado e sem remetente
exim -bpu | grep "<>" | awk '{print $3}' | xargs exim -Mrm

# Apagar emails de uma conta de email
exiqgrep -i -f [email protected] | xargs exim -Mrm

Se algum usuário estiver com bastante e-mails na fila, é interessante analisarmos mais informações sobre os e-mails enviados, podemos estar lidando com uma newsletter ou com um comprometimento da conta, para analisar isso, nós precisamos filtrar todas as mensagens da conta:

exim -bp | grep "[email protected]"

Dessa forma teremos um output semelhante ao da imagem abaixo:

Exim queue

Observe que cada mensagem possui um identificador como por exemplo "1WfnSO-004UX-9d" esse é o id da mensagem para que possamos rastreá-la caso necessário, existem três formas de fazermos isso, podemos verificar o seu cabeçalho, corpo e fluxo de envio/recebimento no log de e-mail:

# Verifica os cabeçalhos de uma mensagem
exim -Mvh <id-da-mensagem>

# Verifica o corpo de uma mensagem
exim -Mvb <id-da-mensagem>

# Verifica o log de e-mail  
exiqgrep <id-da-mensagem> /var/log/exim_mainlog

Também é possível realizar testes de envio de e-mail através da linha de comando, por exemplo:

echo "Titulo teste" |exim -r [email protected]  -v -odf [email protected]

Existem diversas possibilidades de configuração para o exim, para finalizarmos vou deixar um bônus, após uma certa quantidade de tentativas de erro para um domínio o exim salva um cache para evitar novos envios e já negar antes da sua saída, para limpar esse cache basta executar o seguinte comando para remoção dos arquivos:

cd /var/spool/exim/db && rm -rf retry* wait-remote_smtp*

Bom, é isso pessoal, espero que tenham gostado!

Comentários