设置postfix来中继来自networking界面的电子邮件

我在一个有几个外部接口和几个内部接口的系统上运行postfix,我希望postfix接受来自外部接口的本地传送的电子邮件,并接受来自内部接口的中继的电子邮件。

问题是内部接口的networking地址是dynamic的,随着接口的变化而变化(它是一个docker服务器,内部接口是docker服务上升时自动build立的网桥),根据安装时有哪些不可路由的networking可用)。

我知道如何命名内部接口,所以我想设置类似于以下内容的后缀

mynetworks = if:docker0 if:docker1 

但显然这不是我的mynetworks所做的。 有没有在postfix中设置这样的东西的方法?

没有


如果您在man postconf中读取/searchpostfix参数的整个页面,那么显然所有参数(包括mynetworks )都不处理networking接口。 Postfix只处理更高层,如IP地址,域名等。

解决方法是使用在更改时检测IP地址的脚本。 这个脚本将把新的IP地址写入一个文件。 然后将mynetworks参数设置mynetworks文件

 mynetworks = /path/to/script/output 

示例脚本可以在此页面看到。


一些说明:

  • 在覆盖之前,您的脚本应该parsing并validationIP地址格式 。 否则后缀可能会行为不端/停止工作。
  • 不要忘记更改后执行postfix reload

一些想法谁应该触发剧本

  • crontab的
  • docker服务(我没有关于docker和它的朋友的经验:))
  • 当networking接口状态变为启动时的操作系统(如Debian中的post-up或Ubuntu中的if-up.d文件夹 )