在本地主机上测试入站电子邮件的正确方法

Posted

技术标签:

【中文标题】在本地主机上测试入站电子邮件的正确方法【英文标题】:Proper approach to test inbound emails on localhost 【发布时间】:2020-04-14 20:11:38 【问题描述】:

我目前正在开发一个需要能够使用 Sendgrid Webhooks 接收和解析电子邮件的遗留 Cakephp 应用程序。我的团队在我们的笔记本电脑上进行本地开发,并利用网络服务器进行测试。

此功能应该能够接收来自电子邮件客户端(gmail 等)的电子邮件,将其解析并根据电子邮件的内容在数据库中创建项目。我想知道在开发过程中在本地测试类似这样的东西的最严格的方法是什么,或者我是否最好在我们的 AWS 中的一台服务器上开发它?我目前正在关注this tutorial 之后的 Ngrok,但它有点过时了,我想知道是否有更好的方法来处理这个问题。

还考虑在应用程序端使用Mail Mine Parser for PHP。如果你碰巧知道一些更好的东西,我当然会很感兴趣。

提前感谢您对此主题的任何反馈!

【问题讨论】:

安装本地邮件服务器可能最简单? ¯_(ツ)_/¯ @Dmitry Mailtrap、mailhog 和 mailcatcher 用于出站邮件。他需要安装邮件服务器 您为什么要测试 Gmail 是否能够正确发送邮件?为什么不将邮件发送到另一个 gmail 帐户,然后使用他们的邮件 API(我假设他们有一个)来获取邮件? 是的,他们有一个developers.google.com/gmail/api @delboy1978uk 我不是在测试邮件客户端(Gmail 等),而是我的应用程序对传入电子邮件的处理。我将需要在标题、主题等中设置应用程序需要正确解析和节制的数据。 【参考方案1】:

使用 sengrid 入站 webhook 和 ngrok 处理了类似的任务。后者允许您在本地笔记本电脑/机器上公开一个公共 url,sendgrid 可以在其中发送传入的电子邮件。 请检查:

https://sendgrid.com/docs/for-developers/parsing-email/setting-up-the-inbound-parse-webhook

https://ngrok.com

我建议您在设置自己的入站 webhook 服务器之前使用 ngrok 测试您的 webhook。

【讨论】:

以上是关于在本地主机上测试入站电子邮件的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

本地主机上的 php mail() 函数

联系表格 7 不在我的 WAMP 本地主机上工作

使用 Fake SMTP 服务器读取本地主机上发送的 Woocommerce 电子邮件

本地主机上带有 hMailServer 的 PHP sendmail:535 身份验证失败

在本地计算机上测试的邮件服务选项有哪些? [关闭]

会话在本地主机上的两个 Flask 应用程序之间共享