可能重复:
如何configuration后缀pipe道所有传入的电子邮件到脚本?
我在为Redmine(或“| cat> / tmp / temp”)设置简单pipe道时遇到问题
/等/后缀/虚拟:
[email protected] support
/等/后缀/别名:
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 newaliases; postmap virtual; postalias aliases; postalias virtual_alias; newalias newaliases; postmap virtual; postalias aliases; postalias virtual_alias; newalias – 是的,可能过分了,但仍然错过了pouint 🙁
我运行newaliases并重新启动后缀。 邮件照常发送,但没有添加到/ 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 cat someemail | processemail.sh在shell中,一切正常。 Processemail甚至不是由后缀运行。
任何人都知道什么可能是错的? 或者我可以如何打开更多的日志?
pipe道别名由本地(8)后缀代理实现。
中继=虚拟
这意味着您正在使用虚拟(8)代理交付给[email protected],但您需要本地(8)来获取该电子邮件。 也许你使用虚拟作为你的local_transport或者你需要把你的'virtual_alias_maps'文件如下所示:
[email protected]支持@ localhost
这个后缀用户线程和后缀文档可能会有所帮助。
你可以在/etc/aliases (或者它所在的位置)使用一个简单的别名:
support: |/usr/local/bin/yourscripthandler
之后不要忘了运行newaliases 。
请注意,redirect( >/tmp/blah )由shell处理,AFAIK postfix不会调用shell来运行命令; 所以yourscripthandler应该是这样的:
#!/bin/sh /usr/local/bin/theactualscripthandler >/tmp/dummy