Как узнать количество прочитанных и непрочитанных или отправленных и полученных писем с помощью gmali-api? - PullRequest
0 голосов
/ 17 января 2019

Я хочу использовать python, чтобы узнать, сколько писем было отправлено и сколько получено.

label_id_one = 'INBOX'
label_id_two = 'UNREAD'
# Getting all the unread messages from Inbox
unread_msgs = GMAIL.users().messages().list(userId='me', labelIds=[label_id_one, label_id_two]).execute()

Когда я использую этот код, я могу получить количество непрочитанных писем из входящих сообщений.

Но как узнать количество прочитанных писем?

Использовать количество всех писем за вычетом непрочитанных писем? Не думаю, что это хорошо.

Я запросил API по этой ссылке , но ни один API не предоставил такие данные.

Как я могу получить такие данные?

1 Ответ

0 голосов
/ 17 января 2019

Я не думаю, что информация, которую вы ищете, существует. Ближайшая вещь будет Users: getProfile

у которого есть поле в ответе

messagesTotal integer Общее количество сообщений в почтовом ящике.

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

Однако, как только вы удалите сообщение, данные изменятся, и у вас будет на один массаж меньше.

Что касается отправленных сообщений, вы можете составить список message.list и найти сообщения в отправленной папке и получить результат обратно, но это будут те сообщения, которые вы отправили с момента последней очистки этой папки.

Ответ: В API Gmail нет данных, которые бы указывали, сколько писем вы отправили или получили за время существования вашей учетной записи Gmail. Ближайшая вещь, которую вы могли бы получить, была бы

  • Отправлено: количество сообщений в отправленной папке (в: отправлено)
  • Получено: количество сообщений в вашей учетной записи, которых нет в отправленной папке. (не в: отправлено)

, который изменится, как только вы удалите сообщение.

Подсказка: поиск сообщений

Проверить Не читать 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()
...