我有一个 Postfix 设置,虚拟用户运行得很好。我的一些用户将他们的电子邮件重定向到外部电子邮件 gmail 帐户,例如:[email protected]
为了[email protected]
他们自己的方便,通过virtual_alias_maps
.
现在我尝试transport_maps
为这些转发使用专用传输,如下所示:
主.cf:
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_alias_maps = mysql:/etc/postfix/virtual/mysql-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/virtual/mysql-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/virtual/mysql-mailbox-maps.cf
default_transport = out-default
transport_maps = mysql:/etc/postfix/virtual/mysql-transport-maps.cf
主.cf:
out-default unix - - n - - smtp
-o proxy_interfaces=$smtp_default_transport_proxy_interface
-o smtp_bind_address=$smtp_default_transport_interfaces
-o inet_interfaces=$smtp_default_transport_interfaces
-o myhostname=$smtp_default_transport_hostname
-o smtp_helo_name=$smtp_default_transport_hostname
-o syslog_name=smtp-$smtp_default_transport_hostname
out-fwd unix - - n - - smtp
-o proxy_interfaces=$smtp_default_transport_proxy_interface
-o smtp_bind_address=$smtp_default_transport_interfaces
-o inet_interfaces=$smtp_default_transport_interfaces
-o myhostname=$smtp_default_transport_hostname
-o smtp_helo_name=$smtp_default_transport_hostname
-o syslog_name=smtp-fwd-$smtp_default_transport_hostname
-o bounce_queue_lifetime=0
-o maximal_queue_lifetime=0
mysql-别名-maps.cf:
query = SELECT destination FROM `aliases` WHERE source='%s'
mysql-transport-maps.cf:
query = SELECT IF (ISNULL(destination), NULL, 'out-fwd') as transport \
FROM `aliases` \
WHERE destination='%s' \
AND destination LIKE '%%@gmail.com'
我想要完成的是“如果用户将他们的电子邮件转发到@gmail 会减少队列的生命周期。 ”
现在,当我尝试向这些用户发送电子邮件时,会发生以下情况:
postfix/qmgr[28839]: warning: connect to transport private/out-fwd,out-fwd: No such file or directory
private/out-fwd, out-fwd >为什么要重复传输名称?
如果我将查询更改为返回out-fwd:
(最后是冒号),我会得到:
smtp-fwd-xxxx/smtp[23429]: fatal: valid hostname or network address required in server description: ,out-fwd:
,out-fwd: ??? 为什么?
请注意,如果我只是简单地评论该行电子邮件就可以正常transport_maps
发送。default_transport = out-default
谢谢。