5 votes

Piping dans postfix/aliases

Duplicata possible :
Comment configurer postfix pour qu'il achemine tous les e-mails entrants vers un script ?

J'ai du mal à mettre en place un simple piping pour Redmine (ou '|cat > /tmp/temp').

/etc/postfix/virtual :

support@myhost.com 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

J'ai couru newaliases; postmap virtual; postalias aliases; postalias virtual_alias; newalias - Ouais, il en fait probablement trop, mais il manque toujours la pinte :(

J'ai lancé newaliases et redémarré postfix. Le courrier est distribué comme d'habitude, mais rien n'est ajouté à /tmp.

C'est la seule entrée du journal qui dit quelque chose sur virtual .

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

Si je cours cat someemail | processemail.sh dans le Shell, tout fonctionne. Processemail n'est même pas lancé par postfix.

Quelqu'un sait-il ce qui pourrait clocher ? Ou comment je peux activer davantage de journalisation ?

6voto

scyldinga Points 178

Les alias de tuyaux sont mis en œuvre par local(8) agent postfix.

relay=virtual

Cela signifie que vous utilisez le virtuel(8) agent de livraison à support@myhost.com mais vous devez local(8) pour récupérer cet email. Il se peut que vous utilisiez virtual comme transport local ou que vous deviez ajouter quelque chose comme "virtual_alias_maps" dans votre fichier :

support@myhost.com support@localhost

Ce site fil de discussion postfix-users et la documentation de postfix peuvent vous aider.

1voto

Nip Points 881

Vous pourriez utiliser un simple alias dans /etc/aliases (ou quel que soit son emplacement) :

support: |/usr/local/bin/yourscripthandler

N'oubliez pas de courir newaliases après.

Notez que la redirection ( >/tmp/blah ) est quelque chose géré par le Shell, et AFAIK postfix n'invoquera pas un Shell pour exécuter votre commande ; donc yourscripthandler devrait être quelque chose comme :

#!/bin/sh
/usr/local/bin/theactualscripthandler >/tmp/dummy

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X