Dan*_*iel 1 linux postfix-mta pipe mail-server
我正在尝试将一个特定地址传递给php脚本,但似乎我的transport_maps没有触发,而是使用了virtual_transport.这是我有的:
@ example.com列在virtual_mailbox_domains中,并且传递到虚拟邮箱的工作正常.
但我需要将foo@example.com的所有消息转发给dovecot-lda(在virtual_transport中指定),但转发给另一个服务.
这是我对virtual_transport的交付方法:
dovecot unix - nn - - pipe flags = DRhu user = vmail:vmail argv =/usr/lib/dovecot/dovecot-lda -f $ {sender} -d $ {recipient}
这是我想管道所有foo@example.com的地方
php_script unix - nn - - pipe flags = Fq user = www-data argv =/home/script.php
postconf -n
alias_database =散列:在/ etc /别名
alias_maps =散列:在/ etc /别名
append_dot_mydomain =无
一击=没有
config_directory是= /等/后缀
dovecot_destination_recipient_limit = 1
mailbox_size_limit = 0
milter_default_action =接受
milter_protocol = 2
mydestination中=本地主机
MYHOSTNAME =本地主机
mynetworks中= 127.0. 0.0/8 [::ffff:127.0.0.0]/104 [:: 1]/128
myorigin =/etc/mailname
non_smtpd_milters = net:localhost:12301
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:$ {data_directory}/smtp_scache
smtpd_banner = $ MYHOSTNAME ESMTP $ mail_name(于Debian/GNU)
smtpd_milters = INET:本地主机:12301
smtpd_recipient_restrictions =
smtpd_relay_restrictions = permit_sasl_authenticated permit_mynetworks
defer_unauth_destination smtpd_sasl_auth_enable = YES
smtpd_sasl_path =私人/ AUTH
smtpd_sasl_type = dovecot的
smtpd_tls_auth_only = YES
smtpd_tls_cert_file =的/ etc/SSL /证书/mailserver.pem
smtpd_tls_key_file = /etc/ssl/private/mailserver.pem
smtpd_tls_secur ity_level = may
smtpd_tls_session_cache_database = btree:$ {data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = hash:/ etc/postfix/transport
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/ etc/postfix/mysql-virtual-mailbox-
domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = dovecot
在/ etc/postfix/transport foo@example.com php_script中
看来postfix只是忽略了transport_map,我总是在虚拟邮箱表中得到User unknown.哪个是正确的没有这样的用户,但我想在检查之前是否通过transport_maps转发邮件是否有虚拟用户.
有人可以帮忙吗?花两天时间搜索,阅读男人并尝试但似乎它只是不起作用.
好的,我得到了解决方案:
似乎postfix不能同时兼容virtual_transport和transport_maps所以我在virual_aliases中创建了转发到foo @ localhost,然后我使用transport_maps文件来管道foo @ localhost到脚本:)