后缀/别名中的管道

sim*_*sjo 5 postfix pipe aliases

可能的重复:
如何配置 postfix 以将所有传入的电子邮件通过管道传输到脚本?

我在为 Redmine(或“|cat > /tmp/temp”)设置简单管道时遇到问题

/etc/postfix/虚拟:

support@myhost.com support
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/别名:

support: "|/opt/redmine-1.2.2/processemail.sh"
Run Code Online (Sandbox Code Playgroud)

主文件

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
Run Code Online (Sandbox Code Playgroud)

处理email.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
Run Code Online (Sandbox Code Playgroud)

我已经跑了newaliases; postmap virtual; postalias aliases; postalias virtual_alias; newalias- 是的,可能跑得过头了,但仍然错过了 :(

我已经运行了 newaliases 并重新启动了 postfix。邮件照常投递,但没有添加任何内容到 /tmp

这是唯一关于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)
Run Code Online (Sandbox Code Playgroud)

如果我cat someemail | processemail.sh在 shell 中运行,一切正常。Processemail 甚至不是由 postfix 运行的。

任何人都知道可能有什么问题?或者我如何打开更多日志记录?

scy*_*nga 6

管道别名由local(8)后缀代理实现。

中继=虚拟

这意味着您正在使用virtual(8)代理传送到 support@myhost.com 但您需要 local(8)来获取该电子邮件。也许您使用 virtual 作为您的 local_transport 或者您需要放入“virtual_alias_maps”文件,例如:

support@myhost.com support@localhost

这个postfix-users 线程和 postfix 文档可能会有所帮助。