我想将所有发往 的所有电子邮件转发@foo.com
给[email protected]
UNIX 用户baz
。
我尝试将baz
和都添加[email protected]
到virtual
文件中(请参阅下面的配置),但似乎只会将邮件转发到[email protected]
,而不会将其添加到。日志中也/var/mail/baz
没有显示有关投递的错误(甚至在中也没有提及;baz
baz
/var/log/mail.log
[email protected]
做虽然在日志中显示为status=sent
,但后面带有 ,后面qmgr
显示“已删除”;没有显示有关测试电子邮件的更多信息)。
我是不是遗漏了什么?man 5 virtual
说@domain address, address, ...
被接受为一种模式,所以我思考这应该可以行得通,对吧?
/etc/postfix/main.cf
:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mailme
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, mailme.foo.com, mailme, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# Use only ipv4; for some reason ipv6 (used when set to "all") causes "network unreachable" messages in /var/log/mail.log
inet_protocols = ipv4
# Forwarding
virtual_alias_domains = foo.com
virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/virtual
:
@foo.com baz, [email protected]
答案1
@foo.com
在你的 中/etc/postfix/virtual
是一个通配符。(摘自 中的注释/etc/postfix/virtual
)。
这意味着,无论是否是本地帐户,所有目的地都[email protected]
将被接受。user
在您的virtual
文件中,baz
不是一个正确的地址,而是一个用户帐户。正确的地址应该是baz@mydomain
。当然,mydomain
不可能是foo.com
也不是子域中的任何内容,除非您想玩无限重写循环。