在我的实际计算机上捕获虚拟 vagrant 服务器 smtp

在我的实际计算机上捕获虚拟 vagrant 服务器 smtp

我在计算机上使用 vagrant 运行了许多虚拟服务器。运行良好。

我已经安装了 Postfix 来在这些虚拟服务器内发送 SMTP。

但我想要做的是让 Postfix 将 SMTP 发送到我的“真实”计算机(虚拟服务器正在运行),这样它就可以捕获 SMTP 并显示电子邮件以进行调试。我目前使用smtp4dev要执行此操作,它可以监听特定的 IP 和端口。

我尝试过改变 /etc/postfix/main.cf 中的各种内容,包括改变各种中继主机、mydetination 和 mynetworks,看看是否可以“欺骗”虚拟 smtp 服务器将其发送到我的“真实”计算机 - 但没有成功。

有人能帮助我实现这个目标吗?

答案1

好的 - 我找到了解决方案 - 所以我在这里发布以防其他人需要该解决方案。事实证明你根本不需要 Postfix。

我用SMTP4开发,但还有许多其他类似的程序可以“捕获”所有 SMTP 电子邮件以供即时查看和轻松调试。

  1. 在真实计算机上安装 SMTP 捕获程序。让它监听真实计算机自己的实际 IP(端口 25)。在我的例子中,我的 IP 是 192.168.1.5

  2. 启动 vagrant

  3. 测试您是否可以从 Vagrant 内部 ping 您的“真实”计算机 - ping 192.168.1.5

  4. 在应用程序中将开发人员电子邮件设置为类似以下内容

  // This is for Laravel PHP - but you can adapt to suit your own needs
  'driver' => 'smtp',
  'host' => '192.168.1.5',   // change to your real computer ip address
  'port' => 25,
  'encryption' => null,

现在,当您的 Vagrant Development 盒子发送电子邮件时 - 它只会转到您的“真实”计算机并被收集到您的 SMTP 程序中以供即时查看!而且它永远不会“走出”现实世界。

额外提示:使用此设置意味着您不需要在 vagrant box 中设置任何 MTA/SMTP 服务器 - 您的“真实”计算机将充当邮件服务器 - 因此配置问题更少!

相关内容