web-dev-qa-db-ja.com

接尾辞/エイリアスの配管

重複の可能性:
すべての受信メールをスクリプトにパイプするようにpostfixを構成するにはどうすればよいですか?

Redmine(または '| 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

私はnewaliases; postmap virtual; postalias aliases; postalias virtual_alias; newaliasを実行しました-ええ、おそらくそれをやり過ぎますが、それでもpouintを逃します:(

Newaliasesを実行し、postfixを再起動しました。メールは通常どおり配信されますが、/ tmpには何も追加されません

これは、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)

シェルでcat someemail | processemail.shを実行すると、すべてが機能します。 Processemailは接尾辞によっても実行されません。

何が悪いのか誰か知っていますか?または、どうすればより多くのロギングをオンにできますか?

4
simendsjo

パイプエイリアスは local(8) 後置エージェントによって実装されます。

リレー=仮想

これは、support @ myhost.comへの virtual(8) エージェント配信を使用しているが、その電子メールをフェッチするには local(8) が必要であることを意味します。たぶん、local_transportとしてvirtualを使用しているか、 'virtual_alias_maps'ファイルに次のようなものを入れる必要があります。

[email protected] support @ localhost

この postfix-usersスレッド とpostfixのドキュメントが役立つかもしれません。

6
scyldinga

/etc/aliases(またはそれが配置されている場所)で単純なエイリアスを使用できます。

support: |/usr/local/bin/yourscripthandler

後でnewaliasesを実行することを忘れないでください。

リダイレクト(>/tmp/blah)はシェルによって処理されるものであり、AFAIK接尾辞はコマンドを実行するためにシェルを呼び出さないことに注意してください。したがって、yourscripthandlerは次のようになります。

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