如何使用gmali-api获取已读和未读或已发送和已接收的邮件数?

时间:2019-01-17 06:56:38

标签: python google-api gmail gmail-api google-api-python-client

我想使用python知道已发送多少电子邮件和已接收多少电子邮件。

https://stackoverflow.com/users/815724/peter-o

使用此代码时,我可以从收件箱中获取未读邮件的数量。

但是如何获取已读邮件的数量?

使用所有邮件数减去未读邮件数?我认为这不好。

我在此link上查询了API,但没有API提供此类数据。

如何获取此类数据?

1 个答案:

答案 0 :(得分:2)

我不认为您正在寻找的信息存在。最接近的是Users: getProfile

响应中有一个字段

  

messagesTotal整数邮箱中的邮件总数。

{
 "emailAddress": "me@gmail.com",
 "messagesTotal": 66617,
 "threadsTotal": 14010,
 "historyId": "4618566"
}

但是,一旦删除一条消息,数据就会改变,总的消息量也会减少一次。

就发送的邮件而言,您可以执行message.list并在已发送的文件夹中搜索邮件,并获取返回的结果,但这就是您上次清理该文件夹以来发送的邮件。

答案:gmail api中没有任何数据可以说明您在gmail帐户有效期内发送或接收的电子邮件数量。您能得到的最接近的东西是

  • 已发送:已发送文件夹中的邮件数(已发送)
  • 已接收:您帐户中不在已发送文件夹中的邮件数量。 (不在:已发送)

,一旦删除邮件,它就会更改。

提示:search messages

选中未读not in:sent label:unread

未读邮件

unread_msgs = GMAIL.users().messages().list(userId='me', q='not in:sent label:unread').execute()

阅读邮件

unread_msgs = GMAIL.users().messages().list(userId='me', q='not in:sent label:read').execute()