不能在本地主机上使用入站电子邮件


Can't use inbound email on localhost

所以我认为,每个人都使用本地堆栈进行开发。现在我的问题是,我的项目严重依赖于入站邮件。为了做到这一点,我计划使用山魈。他们的问题是我无法找到一种方法来获得电子邮件传递到本地主机。于是我尝试了MailGun。相同的问题。这一切看来,我需要一个实际的域名和主机使用入站电子邮件。我不介意这样做,问题是,它的开发,我更喜欢使用本地堆栈。有什么办法可以解决这个问题吗?总之,我要做的就是接受本地主机的入站电子邮件。那么可能是anything@localhost.com ?这就是它的工作原理吗?

您不需要自己的邮件服务器-这就是使用Mandrill的意义所在。

    给自己找一个便宜的域名(例如example.com)
  1. 为指向Mandrill的域创建一些MX记录以处理入站邮件(参见Mandrill中的入站域设置示例)…例如"example.com => 10 11111111.in1.mandrillapp.com "(使用Mandrill告诉您使用的内容)
  2. 为指向您的网络的公共IP地址的域创建一个A记录(例如www.example.com => 1.1.1.1…将1.1.1.1更改为您的公共IP地址)
  3. 在防火墙上戳一个洞(即设置端口转发),将端口8080(或类似)的入站流量转发到您的MAMP服务器(或您在本地使用的任何设备)。
  4. 配置您的MAMP服务器以响应该域/端口/任何您设置的流量
  5. 测试您可以通过浏览您配置的域名访问您的MAMP服务器(例如。http://www.example.com: 8080/foo……假设您在MAMP服务器的/foo上有一些东西)。如果可能的话,从外部网络测试,确保非本地机器可以连接。
  6. 在Mandrill中配置一个webhook,指向你的PHP脚本在MAMP服务器上的地址(例如http://www.example.com:8080/mandrill.php)
  7. 使用Mandrill中webhook旁边的"send test"按钮来测试代码

这里唯一的魔法是"戳一个洞在你的防火墙(端口转发)"位。这与山魈无关,也不需要山魈工作……Mandrill所做的就是将数据发送到你指定的URL。我们只是想让这个URL指向你的本地MAMP服务器——这就是端口转发位的来源。

如果您不能将端口转发配置为能够使用不同的网络连接到本地MAMP(例如您的手机通过3G/4G连接到互联网,而不是通过WiFi连接到本地网络),那么这些都不起作用