使用 mamp 在本地测试电子邮件

Test emails locally with mamp

首先,我对这种本地主机服务器设置完全陌生,过去几天我一直在尝试解决这个问题,但没有成功。

我正在开发一个带有电子邮件表单的 php 网站。

我正在 MAC 使用 codekitMAMP FREE一切正常。现在我的问题是,是否可以在本地测试应该从表单发送的电子邮件?

我试过很多例子,比如取消注释 php.ini 文件中的 [mail function] 位,安装像 fakeSMTPMockSMTP 但绝对没有任何效果。 mailto() 代码应该可以工作,因为当我调试它时没有抛出任何错误

可以吗?谁知道如何正确设置它,或者可以指点我一个简单的指南?

好吧,如果有人对此感兴趣,我终于找到了一种让它工作的方法。

我将在详细的分步教程中进行解释。

Requirements

  • MAMP 专业版
  • 工作的 gmail 帐户因为你实际上需要登录到电子邮件帐户收件箱(我使用 gmail 使其工作,不确定其他人)

Step-by-step tutorial

  • 首先,您需要安装 mamp pro。在后缀选项卡中,添加 gmail.com 作为外发电子邮件的域,然后单击按钮 "Use this data"
  • 完成后,您要打开终端并输入 sudo nano /System/Library/LaunchDaemons/org.postfix.master.plist(这将允许您编辑 org.postfix.master.plist 文件,否则无法编辑。

  • 您唯一想要做的编辑是在顶部添加,就在 <dict> 之后,这一行 <key>Disabled</key>

  • 现在关闭终端并重启你的mac。

  • 重启后,打开MAMP,进入你要测试邮件的网站,提交邮件。

NB: It is important that you use a working account for the to section of the mail() function, otherwise you won't be able to test the emails!

  • 前端没有任何反应,但是如果你现在打开 MAMP -> postFix 选项卡,在底部你可以看到日志文件的路径和一个箭头,点击箭头,它会显示一条日志消息.
  • 向下滚动到最后一行,您应该会在其中找到 status:sent。此状态已发送意味着电子邮件已发送并且本地测试按预期工作

What's next?

  • 好的,现在登录到您的 gmail 帐户(您在 mail() 函数
  • 中用于 to 部分的帐户
  • 转到垃圾邮件,您应该会看到刚刚从本地 machine 发送的电子邮件。

我正在使用它,它实际上运行良好。

Quick tip

在此之后,我对我的 gmail 收件箱做了一些调整,添加了一个别名和一个过滤器。 我将对此进行解释,它可能对初学者有用

  • 从您的电脑登录您的 gmail 帐户
  • 转到右上角的齿轮图标,然后转到设置
  • 在帐户和导入中,添加另一个帐户用作别名(在我的例子中是 [myemailaddress]+test@gmail.com
  • 完成后,转到过滤器选项卡
  • 添加新过滤器并将其设置为影响发送至 [myemailaddress]+test@gmail.com
  • 的所有电子邮件
  • 点击继续进入下一个画面
  • 现在,您实际上可以根据自己的喜好对其进行调整,但重要的是不要将其发送到垃圾邮件,这样您将始终能够看到您喜欢的电子邮件测试。 (我的个人设置是跳过收件箱(存档)并添加特定标签)

就是这样!希望这已经足够清楚了,并且对你们中的一些人有所帮助。