Piping no postfix / aliases [duplicado]

3

Estou com problemas para configurar a tubulação simples para o Redmine (ou '| cat > / tmp / temp')

/ etc / postfix / virtual:

[email protected] support

/ etc / postfix / aliases:

support: "|/opt/redmine-1.2.2/processemail.sh"

main.cf

virtual_alias_maps = hash:/etc/postfix/virtual, mysql:/etc/postfix/mysql_virtual_forwards.cf
virtual_mailbox_domains = myhost.com, mysql:/etc/postfix/mysql_virtual_domains.cf
virtual_mailbox_maps = hash:/etc/postfix/virtual_alias, mysql:/etc/postfix/mysql_virtual_mailboxes.cf

alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps

processemail.sh:

#!/bin/sh
/opt/redmine-1.2.2/extra/mail_handler/rdm-mailhandler.rb --url http://myhost.com --key f5obfctmGfqZWnOWNtR8 --project test --tracker support --allow-override tracker,project --verbose --unknown-user accept --no-permission-check

Eu corri newaliases; postmap virtual; postalias aliases; postalias virtual_alias; newalias - Sim, provavelmente exagera, mas ainda sente falta do pouint: (

Eu executei newaliases e reiniciei o postfix. O correio é entregue como de costume, mas nada é adicionado ao / tmp

Esta é a única entrada de log que diz nada sobre virtual .

Dec 10 04:08:41 master postfix/virtual[3112]:
A3F46AD1BF: to=<[email protected]>, relay=virtual, delay=0.4,
delays=0.38/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)

Se eu executar cat someemail | processemail.sh no shell, tudo funcionará. Processemail nem sequer é executado pelo postfix.

Alguém sabe o que pode estar errado? Ou como posso ativar mais registros?

    
por simendsjo 10.12.2011 / 10:18

2 respostas

4

O alias de tubulação é implementado pelo agente postfix local (8) .

relay=virtual

Isso significa que você está usando a entrega de agente virtual (8) para [email protected], mas precisa local (8) para buscar esse e-mail. Talvez você esteja usando o virtual como seu local_transport ou precise colocar em seu arquivo 'virtual_alias_maps' algo como:

[email protected] support@localhost

Este tópico postfix-users e a documentação do postfix podem ajudar.

    
por 10.12.2011 / 11:11
1

Você pode usar um alias simples em /etc/aliases (ou onde quer que esteja localizado):

support: |/usr/local/bin/yourscripthandler

Não se esqueça de executar newaliases depois.

Observe que o redirecionamento ( >/tmp/blah ) é algo tratado pelo shell, e o postfix AFAIK não invocará um shell para executar seu comando; então yourscripthandler deve ser algo como:

#!/bin/sh
/usr/local/bin/theactualscripthandler >/tmp/dummy
    
por 10.12.2011 / 11:55