我知道禁用所有本地交付的方法是从“mydestination”中删除域,这将导致所有邮件通过我设置的任何中继进行中继。 但我希望postfix接受来自GApps的所有邮件,以便本地交付给dovecot,但是将本地生成的所有邮件都转发回GApps。
例如:我使用本地postfix在服务器上运行webmail。 [email protected]发送一封电子邮件到[email protected]。 如果用户2在本地存在postfix本地传递,不存在 – 我可以添加一个后备中继,将该邮件发送到GApps。 但是我希望postfix始终将这些邮件转发回GApps(这将邮件发送下游邮件到本地传递postfix),无论本地可用性。 所以我可以有一种瀑布模型。
我知道这里有很多相关的问题(没有特别的答案),但基本上我想要的是在gmail和本地dovecot上为同一用户提供一个相同的收件箱。 我通过直接使用GApps SMTP Relay而不是本地的webmailfind了一个临时修复,但是这并不能解决那些与IMAP连接的问题(最终不得不让每个用户访问GApps SMTP)。
最后得到我的设置与postfix多个实例masegaloeh提到。 我试着用exim4,但是apt-get install exim4自动卸载了postfix,甚至没有提示! 无论如何,这是我如何工作:
#Adds some lines to main.cf enabling multiple instance postmulti -e init #Creates a new instance at the directory /etc/postfix-outgoing postmulti -I postfix-outgoing -G mta -e create
对于我的使用案例,我希望端口25和端口465用于接收来自Gmail的传入邮件,但是需要postfix 提交 (在端口587上运行)以用于传出MTA使用。 所以我在/etc/postfix/master.cf
这样评论它
#submission inet n - - - - smtpd
并评论smtp和smtps,但在/etc/postfix-outgoing/master.cf
添加提交 ,以获得像这样的东西
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no
我从/etc/postfix
复制了默认的ISPConfig的main.cf,并且对/etc/postfix-outgoing/main.cf
做了很多修改,但是主要的是:
myhostname
更改为与主实例不同。 (否则postfix之间混淆) relayhost
。 service auth
指向/var/spool/postfix-outgoing/private/auth
添加第二个侦听器,作为原始path的直接引用对我不起作用。 或者您可以尝试使用 – 通过TCP的Dovecot身份validation 。 最后启用实例:
postmulti -i postfix-outgoing -x postconf -e \ "master_service_disable =" postmulti -i postfix-outgoing -e enable postmulti -i postfix-outgoing -p start
tail -f /var/log/mail.log
并查看出错的地方。
参考: http : //www.postfix.org/MULTI_INSTANCE_README.html