Postfix 禁用本地传送

Postfix 禁用本地传送

有没有什么方法可以防止在 Postfix 服务器上进行本地传送?

理想情况下,我想避免本地传送到某些域,因为这个 postfix 服务器是 google apps 的备份服务器。

答案1

为了让 postfix 知道不要在本地为某个域传递邮件,您需要对 main.cf 中的几个配置变量(如果与您的设置相关)进行更改 - 从官方 postfix 文档中,您需要确保从以下变量中删除所有您不想被视为本地的域:

  • 我的目的地:这通常包含本地交付的域名列表
  • 本地收件人地图:包含本地收件人地址的查找表
  • 本地运输:本地邮件的默认传输方式 - 如果需要则更改inet_接口或者代理接口匹配邮件的目的地
  • 虚拟邮箱域名:与...一样我的目的地,如果你正在使用它

除此之外,我还建议您:

  • 使用后置配置在命令行中快速访问 Postfix 配置变量中的当前值(人postconf了解更多详情)
  • 访问postconf/main.cf官方 Postfix 网站上的信息页面全部细节

是的,后缀很复杂 - 但这正是其可配置特性的美妙之处。

希望这可以帮助!

答案2

我在 Plesk 的上下文中搜索了这个问题并找到了这个问题和答案。似乎在某些配置下(可能取决于您的托管服务提供商),Plesk 无论如何都喜欢假设 postfix 会使用本地交付。非常有帮助!

然后我找到并遵循了这篇文章,它帮助我解决了这个问题: http://www.rcneil.com/blog/postfix-local-loop-in-plesk/

相关部分是:

找到 PostFix 的“main.cf”配置文件,对于 CentOS 6,该文件位于 /etc/postfix/main.cf ...

然后,通过文本编辑器或在 Linux shell 中打开该文件,并编写以下行:

virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
virtual_mailbox_maps = hash:/var/spool/postfix/plesk/vmailbox

像这样注释掉:

#virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
#virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual`
#virtual_mailbox_maps = hash:/var/spool/postfix/plesk/vmailbox`

然后,重新启动 Postfix 服务... 瞧!您的电子邮件地址现在应该可以接收这些电子邮件了。

只是想在这里记录一下,以防有人发现它有助于确切了解对我有用的设置。

答案3

我不确定这是否是理想的解决方案,但我有一个带有单个域的盒子,这对我来说很有效。我使用 Google Apps 收发电子邮件,并且我们安装了 postfix 来发送事务性电子邮件,这些电子邮件最终通过 sendgrid 发送给我们网站的用户。

我发现 postfix 用数千条消息填满了 /Maildir,并占用了我的系统的磁盘空间。

我在 etc/postfix/main.cnf 中更改了以下内容:

mydestination = ip-{IP-ADDRESS-HERE}.ec2.internal, localhost.ec2.internal, , localhost

到:

mydestination = localhost

其中 {IP-ADDRESS-HERE} 是您的 IP,例如 10-100-10-10

重新启动 postfix 后,我进行了测试,消息仍然可以成功发送到 sendgrid 并通过 postfix 发出,但现在我的 maildir 不再充满不必要的消息。

相关内容