Postfix como acionar meu script quando o status do email de saída é enviado?

2

Eu quero executar um programa quando o postfix tiver enviado com sucesso um email (local ou remoto). Gostaria de passar os cabeçalhos para programar e se possível também o ip ou endereço de destino (excluir a entrega do filtro de spam).

Eu só tenho uma ideia: o processamento de notificação de status de entrega via programa de transporte uniqe, mas eu prefiro o acima.

Meu objetivo é registrar a vida útil (eventos) do e-mail: ele veio, saiu (de, para, assunto, data e hora, ID da mensagem, status da mensagem: rejeitar, enviado). Eu só precisaria do estado do email de saída, porque o programa de entrada e devolução está funcionando.

É possível acionar um programa (semelhante a um pipe de transporte / spawn) ou um status de "cheat" de DSN?

Agradecemos antecipadamente por qualquer resposta!

    
por Laszlo Malina 12.06.2014 / 21:30

2 respostas

1

Isso é apenas para registrar cabeçalhos de mensagens.

Por padrão, o postix já registra a maior parte dessas informações, embora não em uma linha. No entanto, ele não registra o assunto ou o ID da mensagem. Podemos adicionar isso usando header_checks 5 .
Observação: para todos os e-mails, e não apenas para saída, use header_checks em vez de smtp_header_checks .

#main.cf
smtp_header_checks = regexp:$config_directory/header-logging.cf


#header-logging.cf
/^subject:/      INFO
/^Subject:/      INFO
/^Message-Id:/   INFO

Essas mensagens serão registradas no syslog no recurso especificado por syslog_facility (default: mail) .

Apr  9 15:37:25 mta-msa postfix/smtps/smtpd[14688]: DA75A231C600: client=192-0-2-5.example.com[192.0.2.5], sasl_method=LOGIN, sasl_username=foo
Apr  9 15:37:25 mta-msa postfix/cleanup[14686]: DA75A231C600: message-id=<[email protected]>
Apr  9 15:37:25 mta-msa postfix/qmgr[14653]: DA75A231C600: from=<[email protected]>, size=6495, nrcpt=1 (queue active)
Apr  9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: info: header Subject: RE: please email as you leave
Apr  9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: info: header Message-ID: <[email protected]>
Apr  9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: to=<[email protected]>, relay=mx.example.org[198.51.100.0]:25, delay=0.65, relays=0.01/0/0.33/0.31, dsn=2.0.0, status=sent (250 2.0.0 1tnx2ya0mh-1 Message accepted for delivery)
Apr  9 15:37:26 mta-msa postfix/qmgr[14653]: DA75A231C600: removed
    
por 10.04.2015 / 00:18
0

Você pode fazer isso com algo que é inserido no pipeline de processamento de postfix como o amavisd-new faz.

Em suma, o postfix está configurado para ter um novo serviço no master.conf do postfix. esse serviço será um pequeno programa que salva uma cópia das mensagens e, em seguida, reinsira as mensagens no postfix.

    
por 13.04.2015 / 22:53

Tags