【发布时间】:2021-08-03 12:08:14
【问题描述】:
在完成各种研究后,我找不到实现这一目标的最佳方法:
- 我有一个 Node Express 服务器,为各种用户提供服务
- 我希望任何用户都能够向 user-id@mydomain.com 发送电子邮件
- 收到后,我想触发服务器中的特定任务,以处理电子邮件正文。
选项 1
我最初希望找到某种 SMTP 节点包,我可以简单地嵌入到服务器中,并使用要接受的各种电子邮件地址对其进行配置,并使用回调函数在电子邮件到达时触发任务。这存在吗?
选项 2
另一种选择是安装 SMTP 服务器(理想情况下在 Docker 容器中,并且无论如何在 Linux 上)来处理每个用户邮箱的存储。然后,我的节点服务器将通过 POP3 或 IMAP 定期检查每个用户邮箱,并在找到电子邮件时触发该任务。但这对我来说似乎有点矫枉过正:
- 完成任务后我不需要存储电子邮件
- 与第一个选项中的回调相比,这种方法的响应速度较慢,并且需要定期检查所有用户,而在实践中,此类电子邮件会非常零星地到达。
在这种方法中,您会推荐什么作为 dockerized SMTP 服务器以及作为 POP3/IMAP 节点包来检索和处理电子邮件?
选项 3?
还有其他方法吗?
欢迎推荐!! 非常感谢!
【问题讨论】:
-
选项 2 在接收时运行脚本将是理想的。当您有一个可以 push 邮件的 SMTP 时,使用 IMAP/POP pull 邮件会更好。所有主要的 SMTP unix 服务器都可以设置为在收到电子邮件时运行某种代码,您可以使用它来将其推送到您想要的位置。
-
谢谢麦克斯!我确实花了几个小时尝试配置 mailu/postfix docker 映像,但遇到了各种问题。在网上进一步搜索,我发现 smtp-server Node 包似乎可以完成这项工作。
标签: express email smtp imap pop3