发送电子邮件时使用 gmail api 调用脚本

Calling a script with gmail api when an email is sent

我们有一个销售团队使用 gmail 向他们的客户发送电子邮件。我们希望能够将这些电子邮件记录到我们的内部系统,我想知道 gmail api 中是否有任何内容允许在发送电子邮件时调用某些脚本?如果是这样,是否有此功能的示例代码?

大概有几种方法可以实现,但是我自己使用的步骤如下:

列出 SENT 文件夹中的邮件并仅要求最多 1 个结果的 id(将为您提供最近发送的):

GET https://www.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&fields=messages%2Fid&maxResults=1&key={YOUR_API_KEY}

响应:

{
 "messages": [
  {
   "id": "1234"
  }
 ]
}

获取表示此邮件发送时间点的 historyId:

GET https://www.googleapis.com/gmail/v1/users/me/messages/14e6525456e7c793?fields=historyId&key={YOUR_API_KEY}

响应:

{
 "historyId": "123456"
}

每隔一定时间查看历史记录,只查看SENT标签下添加的消息,如果响应中有,则在后续请求中使用新的historyId:

GET https://www.googleapis.com/gmail/v1/users/me/history?labelId=SENT&fields=history%2FmessagesAdded%2ChistoryId&startHistoryId=500446&key={YOUR_API_KEY}

响应:

{
 "history": [
  {
   "messagesAdded": [
    {
     "message": {
      "id": "135674567",
      "threadId": "2342456432",
      "labelIds": [
       "SENT",
       "INBOX",
       "UNREAD",
       "IMPORTANT"
      ]
     }
    }
   ]
  }
 ],
 "historyId": "12233445" //Use this in subsequent request!
}