如何使用 Cloud Functions 接收和解析电子邮件?

Posted

技术标签:

【中文标题】如何使用 Cloud Functions 接收和解析电子邮件?【英文标题】:How to receive and parse email with Cloud Functions? 【发布时间】:2019-06-29 21:00:11 【问题描述】:

Google Cloud Functions 允许您在触发时轻松激活功能(例如 Firebase 数据更改、HTTP 请求...)。

我正在寻找一种在用户向电子邮件地址发送(或通常回复)时执行功能的方法。例如,我的仪表板发送一封电子邮件,我想获取回复、解析内容并将其作为评论上传到 Firebase。

我了解 Google 建议使用 Sendgrid。但是我不明白: - 如何在回复时设置触发器 - 如何阅读内容并设置阅读方式

我只找到了如何发送电子邮件here

【问题讨论】:

您是否考虑过使用 webhook 来捕捉回复?我以前用 gmail 做过类似的事情。 sendgrid.com/docs/API_Reference/Event_Webhook/event.html 【参考方案1】:

Google Cloud Functions 不在端点上提供永久侦听器。 SMTP 也没有事件源,它是电子邮件传递所涉及的协议。因此,您目前无法简单地回复带有 Cloud Functions 的电子邮件。

您可以将流量定向到现有的 SMTP 服务器,然后使用 Cloud Functions 从那里读取 at an interval。

另一种方法是使用Sendgrid Inbound Email API,它可以为收到的每条消息调用一个webhook。然后,您的 webhook 将成为 HTTP 触发的云函数。

【讨论】:

【参考方案2】:

如果您使用 GSuite,一个选项是使用 Gmail watch mechanism 收听收件箱中的新电子邮件。然后可以将消息发布到 PubSub 主题,该主题可以触发 Cloud Function 来解析电子邮件并执行必要的后续步骤。

这是一个很好的用例来解释这种机制https://cloud.google.com/blog/products/application-development/adding-custom-intelligence-to-gmail-with-serverless-on-gcp

【讨论】:

以上是关于如何使用 Cloud Functions 接收和解析电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Google Cloud Functions (nodeJS) 发送 HTTP 请求

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?

Cloud Functions 中的间歇性身份验证错误

如何使用 Google Cloud SDK 列出所有 Cloud Functions?

如何从 Cloud Functions 连接 Google Cloud SQL?

如何在 Angular 组件中正确使用 Cloud Functions?