任何从事 Web 开发足够长时间的人都熟悉测试电子邮件的困难,因为许多应用程序出于某种原因需要发送电子邮件的能力。无论是用于身份验证、通知还是其他任何事情,电子邮件都是网络的重要组成部分,就像过去几十年一样。
问题是测试电子邮件发送是一件痛苦的事情,对于大多数开发人员来说,这意味着在他们的个人电子邮件帐户上设置 SendGrid、Mailgun 或启用 SMTP。此外,一旦你开始实际发送电子邮件,你就必须在测试时处理它们堵塞你的收件箱的问题。
当然有很多方法可以解决这个问题。仅举几例:
虽然这些都是我尝试过的有效解决方案(除了设置本地邮件服务器),但它们都有自己的缺点。
例如,使用您的个人电子邮件帐户对于快速而肮脏的解决方案来说非常有用,但当您测试大量电子邮件时,它的扩展性不佳。设置本地邮件服务器有点复杂,虽然它确实可以扩展,但它给您的开发环境增加了另一层复杂性。使用电子邮件服务是一个很好的中间立场,但它为您的项目增加了另一个依赖性,并且可能会产生额外的成本。
出于这些原因以及其他原因,我一直致力于 PostPilot,这是一个受 Mailpit 和 Laravel Herd 启发的免费开源电子邮件测试工具。
对于那些不知道的人来说,Herd 开发人员不久前作为 Laravel 堆栈的一部分解决了这个问题,他们创建了一个漂亮的 GUI,列出了已发送的电子邮件并允许您查看它们并与之交互。这是一个漂亮的解决方案,并且让花 100 美元购买 Herd Pro 许可证几乎是值得的(Herd 的其他部分则从几乎肯定到肯定)。不幸的是,它不是免费的,不是开源的,仅在 macOS 和 Windows 上可用,并且主要用于 Laravel 生态系统。
与 Mailpit 一样,PostPilot 是用 Go 编写的,具有漂亮的 UI、通知以及与传入电子邮件交互的功能。与 Mailpit 不同,PostPilot 是一个 GUI 应用程序,而不是具有 Web 界面的无头服务器。我不会说哪个更好或更差,但就偏好而言,它们确实迎合了不同的受众。
PostPilot 正处于非常活跃的开发阶段,并且仍处于早期阶段。我刚刚发布了 0.1.2 版本,这是第一个实际版本,到目前为止我已经成功地为 Linux 和 Windows 建立了构建过程。截至目前,在 macOS 上运行 PostPilot 的推荐方法是从源代码构建它。一旦我能够负担得起 Apple 开发者帐户和 Windows 签名证书,我就会开始为这两个平台开发安装程序。
我接下来要做的事情是为开发过程提供更好的文档,然后我将尝试从 Mailpit 中获取一些更流行的功能,例如 SpamAssassin 集成以及基于以下内容过滤电子邮件的能力一定的标准。
如果您有兴趣关注或贡献,您可以在 GitHub 上找到该项目,如果您想帮助我构建 Windows 和 macOS,您可以随时在 Patreon、Github 赞助商上支持我,或 Ko-Fi。
以上是认识邮政飞行员的详细内容。更多信息请关注PHP中文网其他相关文章!