根据Gmail API中的推送通知指南。Gmail API可以在Gmail邮箱更改时通知后端服务器应用程序。
为此,您需要设置一个Cloud Pub/Sub客户端并创建一个主题。之后,您可以配置您的Gmail帐户以发送邮箱更新通知。导游说
若要配置Gmail帐户向您的云发布/子主题发送通知,只需使用Gmail API客户端在Gmail用户邮箱上调用watch((,类似于任何其他Gmail API调用。为此,请提供上面创建的主题名称以及watch((请求中的任何其他选项,例如要过滤的标签;这句话取自";获取Gmail邮箱更新
部分链接到上面的指南。该指南还提供了一个发出watch((请求的示例。
我的问题是,我需要按发件人过滤,而不是按标签过滤。我正在创建一个机器人,它将被部署到一个托管提供商,可能是GCP。
我基本上是在寻找一种方法,让Gmail API在收到某个发件人的电子邮件时通知机器人。我在文档中查看了watch方法,似乎唯一可能的过滤器是label。
那么,当我收到某个发件人的电子邮件时,有没有其他方法可以通过Gmail API获得通知?
更新:哦,好吧,所以我读到了关于通过Pub/Sub API向主题发布消息的文章,根据Gmail API文档中对watch的描述,watch似乎负责让Gmail向主题发送(或发布(通知。Pub/Sub API文件的订阅方概述部分指出,
若要接收发布到某个主题的消息,必须创建该主题的订阅。订阅将主题连接到订阅服务器应用程序,该应用程序接收并处理发布到主题的消息">
因此订阅者应用程序将是机器人程序。根据Pub/Sub API文档的筛选消息部分,您可以创建带有筛选器的订阅。上面写着
"当您从带有筛选器的订阅接收消息时,您只会收到与筛选器匹配的消息。Pub/Sub服务会自动确认与筛选器不匹配的消息。您可以根据邮件的属性对其进行筛选">
那么,Gmail发送(或发布(到主题的消息(或通知(是否包括";发件人";属性我似乎找不到Gmail在通知消息中包含的属性。。。
默认情况下不填充属性
请在此处查看此示例通知结构:https://developers.google.com/gmail/api/guides/push.正如规范中所述,只要数据被填充,属性就可以为空,Gmail API通知也是如此。
因此,如果你找不到";发件人";属性-这是因为消息中不包含任何属性。