Postfix不能与[email protected]的用户一起工作

我有一些在Centos 7.1上设置的虚拟主机,我想要像[email protected]这样的用户,以便我可以通过[email protected]回复,而不是像[email protected]

Postfix与用户类似的user但不与[email protected] ,它显示错误status=bounced (User unknown in virtual alias table) ;

/etc/postfix/main.cf中

 alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 home_mailbox = Maildir/ html_directory = no inet_interfaces = all inet_protocols = all local_recipient_maps = hash:/etc/postfix/relay_recipients mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 62.210.xx.xx/24, 192.168.1.0/24, 127.0.0.0/8, [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = host newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES relay_domains = relay_recipient_maps = hash:/etc/postfix/relay_recipients sample_directory = /usr/share/doc/postfix-2.10.1/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop unknown_local_recipient_reject_code = 550 virtual_alias_domains = example1.com example2.com example3.com virtual_alias_maps = dbm:/etc/postfix/virtual virtual_alias_maps = hash:/etc/postfix/virtual 

/等/后缀/虚拟

 example1.com example1.com #[email protected] admin [email protected] [email protected] 

当我这样做的时候,我收到邮件

 example1.com example1.com [email protected] admin 

我得到错误status=bounced (User unknown in virtual alias table) doing this

 example1.com example1.com [email protected] [email protected] 

请build议任何可能的方式来做到这一点

谢谢

创build一个relay_recipients地图:

/等/后缀/ relay_recipients:

 [email protected] ok [email protected] ok 

当然,你可以将它映射到:

 $ postmap relay_recipients 

然后将地图移动到您的postfix目录并重新启动您的服务:

 $ sudo mv relay_recipients.db /etc/postfix/ $ sudo service postfix restart 

来自/etc/postfix/main.cf的代码:/etc/postfix/main.cf:

 mynetworks = 127.0.0.0/8 12.34.56.0/24 relay_domains = example.com smtpd_relay_restrictions = permit_mynetworks reject_unauth_destination relay_recipient_maps = hash:/etc/postfix/relay_recipients 

为您的虚拟别名执行相同types的postmap。

创build虚拟别名文件virtual

 /user@.*/ [email protected] [email protected] user 

执行:

 $ postmap virtual $ sudo mv virtual.db /etc/postfix/ $ sudo service postfix restart 

我通过创build发件人规范地图来解决它

 /etc/postfix/sender_canonical user [email protected] 

然后映射

 postmap /etc/postfix/sender_canonical 

然后将其添加到/etc/postfix/main.cf

 sender_canonical_maps = hash:/etc/postfix/sender_canonical 

现在重新启动Postfix

现在我可以user [email protected]发送邮件

希望它也能帮助别人。

这里的问题是,你混淆了两个不同目的邮件递送代理(MDA)。 长话短说,postfix带有两个MDA – 本地和虚拟。 main.cf参数(如mydomain,local_recipient_maps等)由本地使用,因此不适用于虚拟。 因此,如上所述,您需要为虚拟MDA创build另一个用户映射。 (virtual_mailbox_maps)

以mos basixforms,这些MTA的目的是将本地绑定到所有域之间共享的系统用户帐户(如/ etc / passwd),而虚拟可以为不同的用户和域服务。 对于这个任何进一步的信息,你应该参考后缀文件,这是相当的描述性和易于理解。

顺便说一句如果你想让postfix提供用户邮件,可以考虑使用SASL(SMTPauthentication)。