Postfix 不发送带有 Vagrant DNS 主机解析器的邮件

Postfix Doesn't Send Mail with Vagrant DNS Host Resolver On

我在 Mac 电脑上。我有一个安装了 Postfix 的 vagrant VM,当 Vagrant 的 DNS 主机解析器打开时,它不会发送电子邮件。 Nat DNS 主机解析器修复了 WordPress 在没有主机解析器的情况下吐出的各种错误,所以我需要它。我怎样才能修复 Postfix 而不会导致 WordPress 开始表现得很滑稽?

导致问题的 Vagrantfile 中的代码:

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

编辑 Postfix DNS 设置以使用受 Vagrant DNS 设置影响的 DNS 设置。

要全局更改设置,请编辑 /etc/resolv.conf 并输入您的自定义 DNS IP(8.8.8.8 是 Google 的 DNS 服务器)。这可能会使使用 Vagrant 共享 DNS 设置变得毫无意义。

要利用这两种设置(DNS 解析和适用于 Postfix 的 DNS 设置),请执行以下操作:

cd /var/spool/postfix/etc
sed -i 's/nameserver 10.0.2.3/nameserver 8.8.8.8/g' resolv.conf

这会将 Postfix 使用的 DNS 服务器更改为 8.8.8.8。

我想将其添加为评论,但我没有足够的声望点数来这样做。但是,我仍然想为任何未来的用户解决这个问题,因为我花了比 wanted/needed 多得多的时间来解决这个问题。

在 Ubuntu 14.04 vagrant box 上,我遇到了与 OP 相同的问题。通过测试,我发现更新 /etc/resolv.conf 允许我让 postfix 访问我们的交换服务器,并且 still 为我们的本地开发站点提供本地 NAT DNS 解析。所以像:

sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf; sudo service postfix restart;

奇怪的是,我的 configuration/OS 更新 /var/spool/postfix/etc/resolv.conf 没有用。

我还将这个添加到 Vagrantfile 以备将来使用:

config.vm.provision "shell", run: "always", inline: <<-SHELL
   sudo echo nameserver 8.8.8.8 >> /etc/resolv.conf
   sudo service postfix restart
SHELL