【问题标题】:Can't use inbound email on localhost无法在本地主机上使用入站电子邮件
【发布时间】:2014-07-30 16:19:14
【问题描述】:

所以我假设每个人都使用本地堆栈进行开发。现在这是我的问题,我的项目严重依赖入站电子邮件。为此,我计划使用 Mandrill。他们的问题是我无法找到将电子邮件传递到本地主机的方法。所以我然后尝试了MailGun。同样的问题。看来我需要一个实际的域和主机才能使用入站电子邮件。我不介意这样做,问题是它的开发,我更喜欢使用本地堆栈。关于如何解决这个问题的任何想法?总而言之,我要做的就是接受到我的本地主机的入站电子邮件。所以也许anything@localhost.com?这是它的工作原理吗?

【问题讨论】:

  • 您需要(至少)一个正在运行的邮件服务器来在您的计算机中接收邮件,所以不,这并不容易。也许如果您向我们提供有关您要实现的目标的更多信息...
  • 嗯,我有 Postfix,因为它带有 MAMP。我只是想解析传入的电子邮件。但我需要在 localhost @mTorres 上做
  • 因此,要在您的本地计算机上进行这项工作,您还需要一个 DNS 服务器并创建一个带有指向您本地计算机私有 IP 的 MX 记录的虚假域。您的网络设置必须使用此 DNS 服务器才能解析此虚假域的邮件服务器。您还需要配置 postifx 邮件服务器,总而言之,这并不容易,很难做到……也许您可以尝试使用gmail php api client,这样您就可以将邮件发送到您的 gmail 帐户和你可以直接从那里读...

标签: php rest email post mandrill


【解决方案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 旁边的“发送测试”按钮来测试您的代码

这里唯一的魔力是“在防火墙中戳一个洞(端口转发)”位。这与 Mandrill 无关,也不需要 Mandrill 工作...... Mandrill 所做的只是将数据发布到您告诉它的任何 URL。我们只希望该 URL 指向您的本地 MAMP 服务器 - 这是端口转发位的来源。

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

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2012-05-25
    • 2015-01-25
    • 2017-08-22
    • 2022-06-14
    • 2010-11-22
    • 2013-10-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多