我在计算机上使用 vagrant 运行了许多虚拟服务器。运行良好。
我已经安装了 Postfix 来在这些虚拟服务器内发送 SMTP。
但我想要做的是让 Postfix 将 SMTP 发送到我的“真实”计算机(虚拟服务器正在运行),这样它就可以捕获 SMTP 并显示电子邮件以进行调试。我目前使用smtp4dev要执行此操作,它可以监听特定的 IP 和端口。
我尝试过改变 /etc/postfix/main.cf 中的各种内容,包括改变各种中继主机、mydetination 和 mynetworks,看看是否可以“欺骗”虚拟 smtp 服务器将其发送到我的“真实”计算机 - 但没有成功。
有人能帮助我实现这个目标吗?
答案1
好的 - 我找到了解决方案 - 所以我在这里发布以防其他人需要该解决方案。事实证明你根本不需要 Postfix。
我用SMTP4开发,但还有许多其他类似的程序可以“捕获”所有 SMTP 电子邮件以供即时查看和轻松调试。
在真实计算机上安装 SMTP 捕获程序。让它监听真实计算机自己的实际 IP(端口 25)。在我的例子中,我的 IP 是 192.168.1.5
启动 vagrant
测试您是否可以从 Vagrant 内部 ping 您的“真实”计算机 - ping 192.168.1.5
在应用程序中将开发人员电子邮件设置为类似以下内容
。
// 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 服务器 - 您的“真实”计算机将充当邮件服务器 - 因此配置问题更少!