Postfix é um Mail Transfer Agent (MTA) extremamente flexível. Uma das suas características é o uso de várias filas para gerenciar os emails. Neste artigo, vamos mergulhar nas diferentes filas do Postfix e aprender como gerenciá-las.
Filas do Postfix
- Incoming: Os emails que chegam através da rede, entregues pelo maildrop, ficam nessa fila.
- Active: Os emails nesta fila são aqueles que o gerenciador da fila abriu para entregas. Há um limite no número de mensagens que essa fila pode comportar.
- Deferred: Os emails que falharam na primeira tentativa de entrega são colocados aqui. O gerenciador de fila (QMGR) usará as configurações no main.cf para tentar entregar novamente esses emails. Por padrão, o tempo entre as tentativas de entrega é dobrado a cada falha.
- Corrupt: Emails com arquivos de fila que não podem ser lidos ou estão danificados são movidos para essa fila para inspeção.
- Hold: Essa fila contém emails que o administrador colocou em espera. Eles permanecerão aqui até que sejam especificamente liberados.
A gestão destas filas é realizada pelo QMGR, cujos detalhes podem ser encontrados aqui.
Localização das Filas
Todas essas filas estão localizadas no diretório /var/spool/postfix/
. Ao listar esse diretório, podemos ver todas as filas e outros diretórios relacionados, como mostrado abaixo:
root@mailserver:/etc/postfix# ls /var/spool/postfix/ -la
Gerenciando as Filas com Postqueue e Postsuper
Ambos postqueue
e postsuper
são ferramentas poderosas para gerenciar as filas do Postfix.
- Comandos
postqueue
: postqueue -p
: Veja a situação atual da sua fila.postqueue -f
: Envie imediatamente emails que estão na fila deferred.postqueue -i message_id
: Inicie a entrega imediata de um email específico.postqueue -s mda.gov.br
: Inicie a entrega imediata de emails para um domínio específico.- Comandos
postsuper
: postsuper -h queue_id
: Coloque um email em espera.postsuper -H queue_id
: Libere um email que estava em espera.postsuper -d queue_id
: Remova um email das filas.postsuper -d ALL
: Remova todos os emails das filas.postsuper -p
: Limpe os arquivos temporários das filas.postsuper -s
: Verifique e repare as filas se necessário.postqueue -r queue_id
: Reinsira um email na fila.
Visualizando as Filas com Qshape
Qshape
é uma ferramenta de análise estatística para Postfix. Para visualizar diferentes filas, podemos usar os seguintes comandos:
qshape active|head
qshape deferred|head
qshape incoming|head
qshape hold|head
Monitorando as Filas com Shell Script
Podemos usar um script para monitorar continuamente as filas. Por exemplo, o script contafilas
mostra o número de emails em cada fila:
#!/bin/bash
#Nerd Expert nerdexpert.com.br
# variaveis
while true;do
clear
qdir=`/usr/sbin/postconf -h queue_directory`
incoming=`/usr/bin/find $qdir/incoming -type f -print | wc -l | awk '{print $1}'`
maildrop=`/usr/bin/find $qdir/maildrop -type f -print | wc -l | awk '{print $1}'`
active=`/usr/bin/find $qdir/active -type f -print | wc -l | awk '{print $1}'`
deferred=`/usr/bin/find $qdir/deferred -type f -print | wc -l | awk '{print $1}'`
hold=`/usr/bin/find $qdir/hold -type f -print | wc -l | awk '{print $1}'`
corrupt=`/usr/bin/find $qdir/corrupt -type f -print | wc -l | awk '{print $1}'`
# imprimindo informacoes
echo "Verificando Filas"
echo -e "\nE-mails chegando (incoming queue): $incoming"
echo "E-mails sendo processados (maildrop): $maildrop"
echo "E-mails na fila para entrega (active queue): $active"
echo "E-mails que nao foram entregues (deferred queue): $deferred"
echo -e "E-mails com problemas (corrupt queue): $corrupt\n"
sleep 5
done
Para usar o script, salve-o como /etc/postfix/contafilas
, torne-o executável (chmod +x /etc/postfix/contafilas
) e execute-o.
Conclusão
O gerenciamento eficiente das filas do Postfix é crucial para garantir que os emails sejam entregues de maneira oportuna e confiável. Utilizando as ferramentas e técnicas acima, os administradores podem manter suas instalações do Postfix funcionando de maneira otimizada.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.