Postfix的virtual_alias和recipient_delimiter转发

请帮我设置Postfix,我已经设置了recipient_delimiter。 (点),并希望转发电子邮件的规则:

[email protected] -> [email protected] [email protected] -> [email protected] [email protected] -> [email protected] 

等等。

但是,当我发送电子邮件到[email protected],它转发到[email protected]

我怎样才能防止这种行为?

main.cf:

 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = $myhostname, 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 inet_protocols = all virtual_alias_domains = example.com virtual_alias_maps = hash:/etc/postfix/virtual sender_canonical_maps = tcp:127.0.0.1:10001 sender_canonical_classes = envelope_sender recipient_canonical_maps = tcp:127.0.0.1:10002 recipient_canonical_classes = envelope_recipient 

虚拟:

 @example.com [email protected] 

默认情况下,不匹配的扩展名(即分隔符右侧的内容)传播到规范和虚拟的右侧(请参阅文档 )。 所以你虚拟expression式的右手边就可以得到一个扩展,就像你看到的那样。

所以,如果是虚拟的,你应该在左边指定一个完全匹配(即带有扩展名),或者通过在configuration文件中明确指定来从propagate_unmatched_extensions删除虚拟。