Executar script quando chega novo email (Postfix / Dovecot)

1

Eu quero executar um script de backup (.sh) quando eu receber um novo e-mail no meu servidor de e-mail (rodando no Debian com o Postfix / Dovecot). Eu encontrei muitos posts sobre este tópico, mas ninguém me deu uma solução de trabalho. Aqui, a última solução que testei: link . Alguém tem uma sugestão?

EDIT: Quando eu receber um novo e-mail, eu quero executar um script bash e deixar postfix / dovecot colocar este novo e-mail na pasta ~ / Maildir. Eu estou procurando por um tipo de "middleware" que não bloqueie o processo padrão

    
por soywod 11.10.2016 / 11:19

2 respostas

2

Se a sua pergunta atual é sobre como manter um backup de cada mensagem recebida (e enviada) pelo seu servidor de e-mail, a resposta é definir a opção always_bcc e especifique uma caixa de correio.

Dependendo da sua configuração, você pode encaminhar mensagens recebidas por essa caixa de correio (ou alias) para um script para processamento adicional.

Por exemplo, em / etc / aliases :

 mailbox: "| /usr/local/bin/script.pl"

Edite com base nos comentários :

Bastante antigo, mas quando seus usuários de email são usuários do sistema e têm diretórios pessoais, existe o estilo antigo do sendmail .forward file, ainda suportado pelo postfix também. A sintaxe é um pouco arcana, mas um ~mailuser/.forward com o seguinte conteúdo entregará a mensagem ao mailstore do usuário e a encaminhará para um script:

\mailbox, "| /usr/local/bin/script.pl"
    
por 11.10.2016 / 14:21
0

Pode ser que você precise do marcador postfix ?

You specify SMTP-only Milter applications (there can be more than one) with the smtpd_milters parameter. Each Milter application is identified by the name of its listening socket; other Milter configuration options will be discussed in later sections. Milter applications are applied in the order as specified, and the first Milter application that rejects a command will override the responses from other Milter applications.

/etc/postfix/main.cf:
    # Milters for mail that arrives via the smtpd(8) server.
    # See below for socket address syntax.
    smtpd_milters = inet:localhost:portnumber ...other filters...

A sintaxe geral dos sockets de escuta é a seguinte:

unix:pathname

    Connect to the local UNIX-domain server that is bound to the specified pathname. If the smtpd(8) or cleanup(8) process runs chrooted, an absolute pathname is interpreted relative to the Postfix queue directory.
inet:host:port

    Connect to the specified TCP port on the specified local or remote host. The host and port can be specified in numeric or symbolic form.

    NOTE: Postfix syntax differs from Milter syntax which has the form inet:port@host.

Use o unix:pathname

    
por 11.10.2016 / 11:56