Gmail
Gmail 是来自 Google 的基于 Web 的电子邮件服务。 使用 Gmail 连接器,可以执行诸如发送或接收电子邮件等作,并在新的电子邮件上触发流。
此连接器在以下产品和区域中可用:
| 服务 | Class | 区域 |
|---|---|---|
| Copilot Studio | 标准 | 除以下各项外的所有 Power Automate 区域 : - 美国政府 (GCC High) - 由世纪互联运营的中国云 - 美国国防部(DoD) |
| 逻辑应用程序 | 标准 | 除以下各项外的所有 逻辑应用区域 : - Azure 中国区域 - 美国国防部(DoD) |
| Power Apps | 标准 | 除以下各项外的所有 Power Apps 区域 : - 美国政府 (GCC High) - 由世纪互联运营的中国云 - 美国国防部(DoD) |
| Power Automate | 标准 | 除以下各项外的所有 Power Automate 区域 : - 美国政府 (GCC High) - 由世纪互联运营的中国云 - 美国国防部(DoD) |
| 联系人 | |
|---|---|
| Name | Microsoft |
| URL |
Microsoft LogicApps 支持 Microsoft Power Automate 支持 Microsoft Power Apps 支持 |
| 连接器元数据 | |
|---|---|
| 发布者 | Microsoft |
| 网站 | https://mail.google.com/mail/ |
| 隐私策略 | https://policies.google.com/privacy |
身份验证和自带应用程序
Gmail 连接器现在支持多种身份验证类型:
- 使用默认共享应用程序
- 自带应用程序
默认共享应用程序使用由Microsoft维护的 Google 客户端应用程序。 在这种情况下,登录到 Gmail 帐户时,系统会要求你同意 Microsoft Power Platform 应用程序。
使用“自带应用程序”选项,可以使用自己的 Google OAuth 客户端应用程序,而不是由Microsoft管理的应用程序。 这样做将允许你控制权限,并启用对连接器使用的某些限制。
若要将自己的 Google OAuth 客户端应用程序与 Gmail 连接器配合使用,需要执行以下步骤:
- 使用 Google 的 API 控制台创建 OAuth 客户端应用程序
- 在 Gmail 连接器中使用应用程序
在 Google 中创建 OAuth 客户端应用程序
若要创建自己的 Google OAuth 客户端应用程序,需要首先登录 https://developer.google.com。 导航到 Google 的 API 控制台(可在其中管理对 Google API 的访问权限)并创建 OAuth 应用程序。 此过程在 Google 的 Gmail API 开发人员指南中介绍。 Google 提供了一个 设置工具 ,用于指导你完成创建项目的过程,为项目启用 Gmail API,并为其创建 OAuth 客户端应用程序和凭据。 下面是在浏览工具时会发现有用的一些信息:
- 根据需要阅读并同意服务条款。
- 选择现有项目,或者该工具将创建一个名为“我的项目”的新项目。
- 该工具将在项目中启用 Gmail API。
- 该工具将尝试找出所需的凭据类型。 需要获取 OAuth 客户端应用程序。
- 为将使用的 API 选择 Gmail API (如果尚未选择)。
- 为要从中调用 API 的位置选择 Web 服务器 。
- 选择要访问 的数据的用户数据 。
- 该工具将引导你完成设置 OAuth 同意屏幕。
- 选择用户类型(内部 或 外部)。 如果使用 Gmail 使用者帐户,则不能选择 “内部”。
- 为应用程序提供名称和徽标(可选)。
- 单击“ 添加范围 ”并添加 Gmail 范围(https://mail.google.com)。
注释
根据使用情况需求,你可以在此处选择适当的权限范围子集。
- 添加 azure-apim.net 作为授权域之一。
注释
这是托管 Gmail 连接器的域, 在此处定义。
- (可选)提供其他信息。
- 该工具可让你定义和添加 OAuth 2.0 客户端凭据。
- 为 OAuth 客户端应用程序提供名称。
- 添加“https://global.consent.azure-apim.net/redirect"用于重定向 URI。
完成后,从“凭据”页导航到创建的 OAuth 客户端。 你将找到应用的 客户端 ID 和 客户端密码 。 现在可以在 Gmail 连接中使用这些值。
在 Gmail 连接器中使用自己的应用程序
创建 Google OAuth 客户端应用程序后,可以在创建 Gmail 连接时使用它。
- 选择“ 自带应用程序”。
- 从应用程序指定客户端 ID 和客户端机密值。
单击“ 登录 ”以登录到 Gmail 帐户。 这将提示你登录到 Gmail 帐户,然后授权访问上面创建的 Google 应用。
已知问题和限制
触发大量传入电子邮件的限制
如果每 30 秒收到 300 多封电子邮件, 则新电子邮件到达 触发器可能会跳过电子邮件。 请考虑使用其他筛选器参数配置流以减少电子邮件数量。
如果使用的是 Google Workspace(前 G Suite)帐户, 新电子邮件到达 触发器可能会间歇性地跳过带有附件的电子邮件。 发生这种情况是因为在某些情况下 ,Gmail API 处理电子邮件需要很长时间(可能是由于附件的安全扫描),因此电子邮件会收到一定延迟。
若要解决此问题,请尝试以下作:
使用小电子邮件(没有附件),尝试不经常发送它们
使用另一个使用者 Gmail 帐户,并配置从 Google Workspace 帐户自动转发到此新的使用者 Gmail 帐户。 针对此新帐户配置触发器。 由于这是一个使用者帐户,因此我们认为延迟将最小化,触发器不会跳过此类电子邮件。
将 自定义连接器 用于 ListMessage API 和
q参数:创建一个作,列出过去 5 分钟的消息。 可以使用参数执行此作
q。q参数值的示例 -after:1649457986. 应提供current time - 5min纪元时间作为作输入。- 1649457986是表示“2022年4月8日星期五,格林尼治标准时间下午3:46:26”的纪元时间。
检查响应中的 nextPageToken 值,直到该值为空。 如果不是空,则需要从响应调用参数值设置为 nextPageToken 的相同 API
pageToken。 例如,可以使用 “Until”循环 执行此作。筛选掉先前运行中已处理的那些消息 ID(例如,可以使用 Azure 表存储 连接器来存储已处理的 ID)
使用 “获取电子邮件详细信息 ”作按 ID 获取电子邮件内容
将 Gmail 连接器与使用者 Gmail 帐户配合使用
根据 Google 的安全和隐私策略,使用使用者 Gmail 帐户的客户(帐户即将结束 @gmail.com ,并且 @googlemail.com) 只能连接到 Power Automate 和逻辑应用中的一组有限的服务。 使用 Google Workspace(前 G Suite)帐户的客户不受此更改的影响。 如果需要将 Gmail 连接器用于以下列表中未指定的服务,则需要 向 Google 注册自己的应用程序 ID。 下面是当前批准的服务列表,请注意,根据 Google 的政策,此列表将来可能会更改:
- Google 服务:Gmail、Google Calendar、Google Contacts、Google Drive、Google Sheets、Google Tasks
- 内置作和触发器:Control、AI Builder、数据作、日期时间、数字函数、Power Virtual Agents、Power Apps、Request、Schedule、Text Functions、Variables、Flow 按钮、位置
- 有限的一组Microsoft服务:OneDrive、Sharepoint、Excel、Dynamics、Microsoft Teams、Office 365、SQL、SFTP 和 FTP
在 Power Automate 中,如果使用不符合的服务创建流,流最终会以禁用状态保存。
计算工作单位
连接器对一天内可以使用的工作单位数有限制(请参阅 此处)。
下面显示了如何为每个作计算这些工作单位的逻辑:
-
当新电子邮件到达触发器时 :10 + (5 * attachmentsCount):
- 如果触发器返回新电子邮件:5 个单位列出邮件 + 5 个单位以获取邮件 + 5 个单位 * 附件计数。
- 如果触发器未返回新电子邮件:列出邮件的 5 个单位。
- 发送电子邮件(V2) 作:100 个单位。
-
答复电子邮件(V2) 作:105 + (5 * attachmentsCount):
- 5 个单位用于获取原始邮件 + 100 个单位以发送答复邮件 + 5 个单位 * 原始邮件中的内联附件计数。
- 对于所有其他作:10 个单位。
连接器深入
有关连接器的详细信息,请参阅 深入部分。
常规限制
| Name | 价值 |
|---|---|
| 最大邮件大小(以 MB 为单位) | 35 |
| 最大附件大小(以 MB 为单位) | 30 |
正在创建连接
连接器支持以下身份验证类型:
| 自带应用程序 | 使用自己的 Google 应用登录。 有关详细信息,请参阅 https://docs.microsoft.com/connectors/gmail/#authentication-and-bring-your-own-application。 | 所有区域 | 不可共享 |
| 使用默认共享应用程序 | 使用标准 Google 应用登录。 | 所有区域 | 不可共享 |
| 默认值 [已弃用] | 此选项仅适用于没有显式身份验证类型的较旧连接,并且仅用于向后兼容性。 | 所有区域 | 不可共享 |
自带应用程序
身份验证 ID:byoa
适用:所有区域
使用自己的 Google 应用登录。 有关详细信息,请参阅 https://docs.microsoft.com/connectors/gmail/#authentication-and-bring-your-own-application。
这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。
| Name | 类型 | Description | 必选 |
|---|---|---|---|
| 客户 ID | 字符串 | Google 应用程序的客户端(或应用程序)ID | True |
| 客户端密码 | securestring | Google 应用程序的客户端密码 | True |
使用默认共享应用程序
身份验证 ID:shared-application
适用:所有区域
使用标准 Google 应用登录。
这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。
默认值 [已弃用]
适用:所有区域
此选项仅适用于没有显式身份验证类型的较旧连接,并且仅用于向后兼容性。
这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。
限制
| 名称 | 调用 | 续订期 |
|---|---|---|
| 每个连接的 API 调用数 | 60 | 60 秒 |
| 每天的工作单位数 | 90000 | 86400 秒 |
操作
| 删除电子邮件 |
此作用于永久删除特定电子邮件。 |
| 发送电子邮件 [已弃用] |
此作已弃用。 请改用发送电子邮件(V2)。
|
| 发送电子邮件(V2) |
此作用于向特定收件人发送电子邮件。 |
| 回复电子邮件 [已弃用] |
此作已弃用。 请改用答复电子邮件(V2)。
|
| 将电子邮件移动到回收站 |
此作用于将特定电子邮件移动到回收站。 |
| 答复电子邮件 (V2) |
此作用于回复特定电子邮件。 |
| 获取电子邮件详细信息 |
此作检索特定电子邮件的详细信息。 |
删除电子邮件
此作用于永久删除特定电子邮件。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
消息 ID
|
id | True | string |
要删除的电子邮件的 ID。 |
发送电子邮件 [已弃用]
此作已弃用。 请改用发送电子邮件(V2)。
此作用于向特定收件人发送电子邮件。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
到
|
To | True |
用分号或逗号分隔的有效电子邮件地址列表。 |
|
|
CC
|
Cc |
用分号或逗号分隔的有效电子邮件地址列表。 |
||
|
BCC
|
Bcc |
用分号或逗号分隔的有效电子邮件地址列表。 |
||
|
Subject
|
Subject | string |
传出电子邮件的主题。 |
|
|
Body
|
Body | string |
传出电子邮件的正文。 |
|
|
是 HTML
|
IsHtml | boolean |
如果以 HTML 形式发送电子邮件,则为 True。 (默认值:True) |
|
|
重要性
|
Importance | string |
与电子邮件关联的重要性。 |
|
|
Name
|
Name | True | string |
附件的标题。 |
|
Content
|
ContentBytes | True | byte |
附件的正文。 |
|
Content-Type
|
ContentType | string |
附件中内容类型。 |
发送电子邮件(V2)
此作用于向特定收件人发送电子邮件。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
到
|
To | True |
用分号或逗号分隔的有效电子邮件地址列表。 |
|
|
CC
|
Cc |
用分号或逗号分隔的有效电子邮件地址列表。 |
||
|
BCC
|
Bcc |
用分号或逗号分隔的有效电子邮件地址列表。 |
||
|
Subject
|
Subject | string |
传出电子邮件的主题。 |
|
|
Body
|
Body | html |
传出电子邮件的正文。 |
|
|
重要性
|
Importance | string |
与电子邮件关联的重要性。 |
|
|
Name
|
Name | True | string |
附件的标题。 |
|
Content
|
ContentBytes | True | byte |
附件的正文。 |
|
Content-Type
|
ContentType | string |
附件中内容类型。 |
回复电子邮件 [已弃用]
此作已弃用。 请改用答复电子邮件(V2)。
此作用于回复特定电子邮件。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
消息 ID
|
id | True | string |
要答复的电子邮件的 ID。 |
|
到
|
To |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
CC
|
Cc |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
BCC
|
Bcc |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
Subject
|
Subject | string |
电子邮件主题(如果为空,则使用原始主题)。 |
|
|
Body
|
Body | string |
电子邮件的内容。 |
|
|
全部答复
|
ReplyAll | boolean |
如果答复所有收件人,则为 True。 (默认值:False) |
|
|
是 HTML
|
IsHtml | boolean |
如果以 HTML 形式发送答复,则为 True。 (默认值:True) |
|
|
重要性
|
Importance | string |
选取重要性。 (默认值:普通) |
|
|
Name
|
Name | True | string |
附件的标题。 |
|
Content
|
ContentBytes | True | byte |
附件的正文。 |
|
Content-Type
|
ContentType | string |
附件中内容类型。 |
将电子邮件移动到回收站
此作用于将特定电子邮件移动到回收站。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
消息 ID
|
id | True | string |
要移动到回收站的电子邮件的 ID。 |
答复电子邮件 (V2)
此作用于回复特定电子邮件。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
消息 ID
|
id | True | string |
要答复的电子邮件的 ID。 |
|
到
|
To |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
CC
|
Cc |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
BCC
|
Bcc |
示例: recipient1@domain.comrecipient2@domain.com |
||
|
Subject
|
Subject | string |
电子邮件主题(如果为空,则使用原始主题)。 |
|
|
Body
|
Body | html |
电子邮件的内容。 |
|
|
全部答复
|
ReplyAll | boolean |
如果答复所有收件人,则为 True。 (默认值:False) |
|
|
重要性
|
Importance | string |
选取重要性。 (默认值:普通) |
|
|
Name
|
Name | True | string |
附件的标题。 |
|
Content
|
ContentBytes | True | byte |
附件的正文。 |
|
Content-Type
|
ContentType | string |
附件中内容类型。 |
获取电子邮件详细信息
此作检索特定电子邮件的详细信息。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
消息 ID
|
id | True | string |
电子邮件的唯一 ID。 |
|
包括附件
|
includeAttachments | boolean |
如果设置为 true,则附件也会随电子邮件一起检索。 |
返回
与特定电子邮件关联的详细信息。
触发器
| 新电子邮件到达时 |
当符合指定条件的新电子邮件到达时,此作将触发。 |
新电子邮件到达时
当符合指定条件的新电子邮件到达时,此作将触发。
参数
| 名称 | 密钥 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
标签
|
label | string |
选取标签(默认值:收件箱)。 |
|
|
到
|
to |
用分号或逗号分隔的有效电子邮件地址列表。 |
||
|
来自
|
from |
示例:Sender1 | sender2@domain.com。 |
||
|
Subject
|
subject | string |
要查找的主题中的字符串。 |
|
|
重要性
|
importance | string |
如此 如果电子邮件应该很重要。 (默认值:全部)。 |
|
|
主演
|
starred | string |
如此 如果电子邮件应为星号。 (默认值:全部)。 |
|
|
带有附件
|
fetchOnlyWithAttachments | boolean |
如果仅检索带有附件的电子邮件,则为 True。 |
|
|
包括附件
|
includeAttachments | boolean |
若要检索附件以及电子邮件,则为 True。 |
返回
与特定电子邮件关联的详细信息。
定义
DetailedReceiveMessage
与特定电子邮件关联的详细信息。
| 名称 | 路径 | 类型 | 说明 |
|---|---|---|---|
|
来自
|
From |
发送邮件的电子邮件地址。 |
|
|
发件人姓名
|
SenderName | string |
电子邮件发件人的姓名 |
|
到
|
To |
邮件发送到的电子邮件地址。 |
|
|
CC
|
Cc |
抄送字段中包含的电子邮件地址。 |
|
|
BCC
|
Bcc |
BCC 字段中包含的电子邮件地址。 |
|
|
Subject
|
Subject | string |
与电子邮件关联的主题或主题。 |
|
Body
|
Body | string |
电子邮件的内容。 |
|
片段
|
Snippet | string |
消息文本的简短部分。 |
|
标签 ID
|
LabelIds | array of string |
与电子邮件关联的标签列表。 |
|
收到的 Date-Time
|
DateTimeReceived | date-time |
示例:2017-05-03T20:08:57+00:00 |
|
估计大小
|
EstimatedSize | integer |
消息的估计大小(以字节为单位)。 |
|
是否读取?
|
IsRead | boolean |
如果已读取消息,则为 True;否则为 false。 |
|
是 HTML
|
IsHtml | boolean |
如此 如果消息采用 HTML 格式。 |
|
带有附件
|
HasAttachments | boolean |
如此 如果邮件有附件。 |
|
附件
|
Attachments | array of Attachment |
电子邮件附件列表。 |
|
消息 ID
|
Id | string |
消息的不可变 ID。 |
|
线程 ID
|
ThreadId | string |
消息所属的线程的 ID。 |
附件
电子邮件附件的属性。
| 名称 | 路径 | 类型 | 说明 |
|---|---|---|---|
|
Name
|
Name | string |
附件的标题。 |
|
Content
|
ContentBytes | byte |
附件的正文。 |
|
Content-Type
|
ContentType | string |
附件中内容类型。 |