Páginas

Mostrando postagens com marcador Postfix. Mostrar todas as postagens
Mostrando postagens com marcador Postfix. Mostrar todas as postagens

segunda-feira, 1 de abril de 2013

Controlando Filas de Email no Postfix

objetivo

Aqui vamos ver alguns métodos para controlar as filas de e-mail do MTA Postfix.

filas

As filas que esta MTA usa para o processamento de mensagens são:
incoming
active
deferred
corrupt
hold
Quem faz o gerenciamento da fila é o QMGR (http://www.postfix.org/qmgr.8.html)
Agora vamos entender a finalidade de cada fila.

tipos

incoming

Esta é a fila de e-mails que estâo entrando a partir da rede, repassados pelo maildrop.

active

Esta é a fila de e-mails que foram abertos pelo gerenciador da fila para entregas. Essa fila tem um numero limite para entrada de mensagens.

deferred

Esta é a fila de mensagens que não conseguiram ser entregues na primeira tentativa. O gerenciador da fila vai seguir as configurações do main.cf para novas tentativas de entregas. Por padrão ele vai dobrando o tempo de entrega a cada tentativa.

corrupt

Os arquivos das filas que não conseguem ser lidos ou que estão danificados são movidos para esta fila para uma inspeção.

hold

Mensagens que são colocadas em espera pelo administrador vão para esta fila até que alguém especifique que ela deva ser liberdada.

terça-feira, 26 de março de 2013

Gerenciando as filas do POSTFIX

Para quem recebe uma grande demanda de emails diariamente ou até mesmo rastrear o envio ou recebimento de um email é sempre bom saber como fazer isso. O postfix conta com alguns utilitários em sua instalação que nos ajuda a fazer estas tarefas, também é claro que existem outras ferramentas do nosso próprio linux que podem nos auxiliar.

Em primeiro lugar vamos ver onde ficam as pastas das filas:

No meu caso que estou utilizando a distribuição baseada no redhat, o CentOS 4.6 a licalização dos diretórios ficam em:

/var/spool/postfix

Dentro desta pasta existem inúmeros diretórios, vamos ver alguns importantes:

incoming - Esta file contém todos os emails novos que entram na fila do postfix. Eles são armazenados pelo processo cleanup.
active - Esta file contém todos os e-mails que foram abertos pelo gerenciador da fila para entrega. 
deferred - Esta fila armazena todos os emails que por algum motivo não puderam ser entregues aos seus receptores.
corrupt - As mensagens que não podem ser lidas ou danificadas são colocadas nesta fila.
hold - Esta fila é usada pelos administradores para por mensagens em espera até que alguém especifique que ela deva ser liberdada. Esta fila é muito usada por programas de checagem de mensagens, como o MailScanner, Clamav, etc... antes de serem entregues para o usuário.


Bom, agora que já aprendemos um pouco sobre a função de cada pasta vamos nos deter nos aplicativos para controlar as mensagens.

Na instalação do postfix já vem com vários aplicativos que iremos detalhar seu uso abaixo:

postqueue - Postfix Queue Control
postsuper - Postfix Superintendent
qshape - Print Postfix queue domain and age distribuition


Postfix Queue Control

postqueue -p -> comando usado para verificar a fila de emails

postqueue -f -> comando usado para dar um flush, ou seja, tenta entregar todos os emails da fila.
postqueue -s dominio -> comando usado para iniciar a entrega imediata de mensagens de um determinado domínio.

postqueue -v -> Habilita modo verbose para debug.




Postfix Superintendent
postsuper -h queue_id -> comando usado para colocar uma mensagem em espera.

postsuper -H queue_id -> Comando usado para tirar uma mensagem da espera.

postsuper -p -> comando usado para dar um purge nos arquivos temporários.

postsuper -d queue_id -> comando usado para deletar uma mensagem da fila.

postsuper -r queue_id -> comando usado para enfileirar novamente as mensagens.

postsuper -s -> comando usado para checar a estrutura e reparar caso haja erros.

postsuper -v -> Habilita modo verbose para debug.


Print Postfix queue domain and age distribuition

Por último temos o comando qshape, podemos usá-lo para ver as filas.

qshape active -> mostra o conteúdo da fila active. 
qshape incoming -> mostra o conteúdo da fila incoming.
qshape hold -> mostra o conteúdo da fila hold.
qshape deferred -> mostra o conteúdo da fila deferred.
qshape -s -> mostra os domínios de destino.



Exemplo de filtros

Com o auxílio do comando find podemos fazer uma busca nas filas por um determinado email e depois apagá-lo com mostra o comando abaixo:

# find /var/spool/postfix -type f | xargs -n 1000 grep -l email@dominio.com.br | sed 's/.*\///g' | postsuper -d -

Para tirarmos da fila de espera um determinado email:
# find /var/spool/postfix -type f | xargs -n 1000 grep -l email@dominio.com.br | sed 's/.*\///g' | postsuper -H -

Excluindo tudo que está em HOLD, ou seja, na fila de espera.

# find /var/spool/postfix/hold -type f | sed 's/.*\///g' | postsuper -H -

Procurar mensagens do domínio teste.com.br
# tail -10000 /var/log/maillog | egrep -i ': from=<.*@teste\.com\.br>,' | less

Procurar uma mensagem por um específico queue_id
# tail -10000 /var/log/maillog | egrep ': 2B2173FF68: '

Verificar possíveis problemas.
# egrep 'qmgr.*(panic|fatal|error|warning):' /var/log/maillog


fonte : http://marcosabadi.blogspot.com.br/2008/11/gerenciando-as-filas-do-postfix.html

Servidor de Email - POSTFIX

REDIRECIONAMENTO DE E-MAILS (CONTAS DE USUÁRIOS UNIX)

# vi /etc/postfix/main.cf (entra no arquivo de configuracao do PostFix) 
alias_maps = hash:/etc/aliases (acrescente essa opção se quiser fazer Forward de e-mail. Um Forward de e-mail significa que uma conta ao receber um e-mail redirecionará o mesmo automaticamente para outra conta de e-mail (local ou externamente). Esse redirecionamento não armazena as mensagens na conta local, ou seja, a conta que redirecionará o e-mail para outro endereço nao armazenara as mensagens redirecionadas. Para que isso não ocorra, basta colocar no redirecionamento o endereço da conta local. Depois é necessário criar o arquivo “/etc/postfix/virtual”, conforme mostrado a seguir) 
alias_database = hash:/etc/aliases 
Salve e Sai do arquivo 

# vi /etc/aliases (essa arquivo deve ser criado e deve conter os redirecionamentos de e-mail) 
root: hugo, hudson@example.com.br, lu@domain.com, francisco (essa linha informa que todo e-mail enviado para o "root" deve ser redirecionado para "hugo", "hudson@example.com.br", "lu@domain.com" e francisco) 
Salve e Sai do arquivo 

# newaliases (ao executar esse comando os redirecionamentos feitos serao ativados. Tambem um novo arquivo binario [e criado "/etc/aliases.db") 





REDIRECIONAMENTO DE E-MAILS (CONTAS DE USUÁRIOS NÃO UNIX)

# vi /etc/postfix/main.cf (entra no arquivo de configuracao do PostFix) 
virtual_alias_maps = hash:/etc/postfix/virtual (acrescente essa opção se quiser fazer Forward de e-mail. Um Forward de e-mail significa que uma conta ao receber um e-mail redirecionará o mesmo automaticamente para outra conta de e-mail (local ou externamente). Esse redirecionamento não armazena as mensagens na conta local, ou seja, a conta que redirecionará o e-mail para outro endereço nao armazenara as mensagens redirecionadas. Para que isso não ocorra, basta colocar no redirecionamento o endereço da conta local (segue o mesmo princípio do /etc/aliases). Depois é necessário criar o arquivo “/etc/postfix/virtual”, conforme mostrado a seguir) 
Salve e Sai do arquivo 

# vi /etc/postfix/virtual (essa arquivo deve ser criado e deve conter os redirecionamentos de e-mail) 
email_entrada@domain email_destino1@domain, email_destino2@domain, email_destino3@domain (essa linha informa que todo e-mail enviado para "email_entrada@domain" deve ser redirecionado para "email_destino1@domain", "email_destino2@domain" e "email_destino3@domain") 
Salve e Sai do arquivo 

# postmap /etc/postfix/virtual (ao executar esse comando os redirecionamentos feitos serao ativados. Tambem um novo arquivo binario [e criado "/etc/postfix/virtual.db")