如何收听多个邮箱的来信?

问题描述 投票:0回答:1

我想在收到新邮件时执行一个函数。它应该适用于任何电子邮件服务,如 gmail/outlook/yahoo 等。我找到了一篇 article 可以做到这一点,但这里的问题是我需要用户的电子邮件和密码。我真的不想将用户凭据存储在我的数据库中,所以我想知道是否有更好的选择。

我想到的一个选择是在通过 OAuth 获得许可后使用单独的电子邮件服务 API 来侦听传入的电子邮件。但似乎要实现同样的目标需要做很多工作。

解决问题的更好替代方案将不胜感激。有任何想法吗?我愿意接受任何语言来实现相同的(Java 除外)。不要求代码,只是想围绕这个概念。

email architecture monitoring
1个回答
0
投票

使用 OAuth 是可行的方法,因为它允许客户将应用程序发送到他们自己的电子邮件地址,而无需直接共享他们的证书。这是最安全和推荐的方法,尽管实施起来可能需要一些努力。

您可以按照以下步骤简化实施:

选择认证库:可以使用库为不同的语言和平台实现OAuth。例如,您可以将 Python 库 google-auth 和 google-auth-oauthlib 用于 Gmail,将 msal 用于 Outlook。 了解您的应用程序:为了获得所需的 API 凭据,例如客户端 ID 和密钥,您需要向消息服务提供商注册您的应用程序。必须为每项服务(Google、Microsoft、Yahoo 等)完成此操作。 ). 获取访问令牌:使用您最喜欢的库重建生成访问令牌的 OAuth 流程。此令牌可用于在没有密钥的情况下访问客户的邮箱。您可以将此令牌安全地存储在您的数据库中,而不是存储用户的凭据。 利用电子邮件接收器:使用适当的电子邮件服务 API 为入站电子邮件创建接收器。您可以使用 Gmail API 的“查看”功能。 Webhook 可与用于 Outlook 通知的 REST API 一起使用。您可以使用 IMAP IDLE 或定期轮询您的邮箱,但 Yahoo 没有为此提供官方 API。 传入消息处理:每当有新电子邮件到达时,都会向侦听器发送通知。使用邮件服务 API 获取电子邮件内容并相应地执行您的功能。 请记住,每个电子邮件服务都有独特的 API 限制和速度上限。申请时,请确保您优雅地处理它。

此方法允许您创建一个安全且灵活的解决方案,该解决方案可与多个电子邮件服务一起使用,而无需用户直接共享其凭据。

© www.soinside.com 2019 - 2024. All rights reserved.