无法在localhost上使用入站电子邮件

时间:2014-07-30 16:19:14

标签: php rest email post mandrill

因此我假设每个人都使用本地堆栈进行开发。现在这是我的问题,我的项目很大程度上依赖于入站电子邮件。为此,我计划使用Mandrill。与他们的问题是我无法找到一种方法来将电子邮件传递给localhost。所以我接着尝试了MailGun。同样的问题。这似乎我需要一个真正的域和主机来使用入站电子邮件。我不介意这样做,问题是,它的开发,我更喜欢使用本地堆栈。关于如何解决这个问题的任何想法?总而言之,我想做的就是接受入站电子邮件到我的localhost。也许anything@localhost.com?这是怎么回事?

1 个答案:

答案 0 :(得分:1)

您不需要自己的邮件服务器 - 这就是使用Mandrill的重点。

  1. 给自己一个廉价的域名(例如example.com)
  2. 为指向Mandrill的域创建一些MX记录以进行入站邮件处理(请参阅Mandrill中的入站域设置示例)...例如“example.com => 10 1111111.in1.mandrillapp.com”(使用什么Mandrill告诉你使用)
  3. 为指向网络公共IP地址的域创建A记录(例如www.example.com => 1.1.1.1 ...将1.1.1.1更改为您的公共IP地址)
  4. 在防火墙上戳一个洞(即设置端口转发),将端口8080(或类似)上的入站流量转发到您的MAMP服务器(或本地使用的任何地方)。
  5. 配置您的MAMP服务器以响应该域/端口/您设置的任何内容的流量
  6. 测试您可以通过浏览到您配置的域名来访问您的MAMP服务器(例如http://www.example.com:8080/foo ...假设您的MAMP服务器上有/ foo的东西)。如果可能,请从外部网络进行测试,以确保非本地计算机可以连接。
  7. 在Mandrill中配置webhook以指向MAMP服务器上PHP脚本的地址(例如http://www.example.com:8080/mandrill.php
  8. 使用Mandrill中webhook旁边的“发送测试”按钮来测试您的代码
  9. 这里唯一的魔力是“在你的防火墙(端口转发)中钻一个洞”。这与Mandrill无关,并且不需要Mandrill工作......所有Mandrill正在做的是将数据发布到您告诉它的任何URL。我们只希望该URL指向您的本地MAMP服务器 - 这是端口转发位的来源。

    如果您无法将端口转发配置为能够使用其他网络连接到本地MAMP(例如,您的手机通过3G / 4G连接到互联网而不是通过WiFi连接到本地网络)那么这一切都不会奏效。