Поиск непрочитанных писем в Gmail с примерами кода

Поиск всех непрочитанных писем в Gmail можно выполнить с помощью API Gmail и различных языков программирования. Здесь я приведу примеры кода на Python, но вы можете адаптировать логику и для других языков.

Метод 1: использование Python и API Gmail
Чтобы искать непрочитанные электронные письма в Gmail с помощью Python, вам необходимо настроить учетные данные API Gmail и установить клиентскую библиотеку Google. Выполните следующие действия:

  1. Включите API Gmail. Откройте консоль разработчиков Google ( https://console.developers.google.com/ ), создайте новый проект, включите API Gmail и сгенерируйте учетные данные (идентификатор клиента OAuth 2.0).
  2. Установите клиентскую библиотеку Google. Откройте терминал или командную строку и выполните следующую команду:
    pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

После завершения настройки вы можете использовать следующий код для поиска всех непрочитанных писем:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
# Set up credentials
credentials = Credentials.from_authorized_user_file('path/to/credentials.json')
service = build('gmail', 'v1', credentials=credentials)
# Search for unread emails
results = service.users().messages().list(userId='me', labelIds=['INBOX', 'UNREAD']).execute()
messages = results.get('messages', [])
# Print subject and snippet of unread emails
if not messages:
    print('No unread emails found.')
else:
    print('Unread emails:')
    for message in messages:
        msg = service.users().messages().get(userId='me', id=message['id']).execute()
        print('Subject:', msg['payload']['headers'][18]['value'])
        print('Snippet:', msg['snippet'])
        print('---')

Обязательно замените 'path/to/credentials.json'на путь к JSON-файлу ваших учетных данных. Этот код распечатает тему и фрагмент каждого непрочитанного письма.

Метод 2. Использование IMAP (протокол доступа к сообщениям в Интернете).
Другой способ поиска непрочитанных электронных писем — использование протокола IMAP. Вот пример использования встроенного модуля Python imaplib:

import imaplib
# Connect to Gmail IMAP server
imap_server = imaplib.IMAP4_SSL('imap.gmail.com')
imap_server.login('your_email@gmail.com', 'your_password')
# Select the mailbox (e.g., INBOX)
imap_server.select('INBOX')
# Search for unread emails
status, message_ids = imap_server.search(None, 'UNSEEN')
# Print subject and snippet of unread emails
if status == 'OK':
    message_ids = message_ids[0].split()
    if not message_ids:
        print('No unread emails found.')
    else:
        print('Unread emails:')
        for message_id in message_ids:
            status, msg_data = imap_server.fetch(message_id, '(BODY.PEEK[HEADER.FIELDS (SUBJECT FROM)])')
            if status == 'OK':
                subject = msg_data[0][1].decode('utf-8')
                print('Subject:', subject)
                print('---')
else:
    print('Failed to search for unread emails.')
# Close the connection
imap_server.logout()

Замените 'your_email@gmail.com'и 'your_password'своими учетными данными Gmail. Этот код будет печатать тему каждого непрочитанного письма.

Метод 3. Использование Gmail API со скриптом Google Apps
Вы также можете использовать Google Apps Script, платформу на основе JavaScript, для поиска непрочитанных писем в Gmail. Вот пример:

function searchUnreadEmails() {
  var threads = GmailApp.search("is:unread");

  if (threads.length === 0) {
    Logger.log("No unread emails found.");
  } else {
    Logger.log("Unread emails:");
    for (var i = 0; i < threads.length; i++) {
      var messages = threads[i].getMessages();
      for (var j = 0; j < messages.length; j++) {
        var subject = messages[j].getSubject();
        var snippet = messages[j].getSnippet();
        Logger.log("Subject: " + subject);
        Logger.log("Snippet: " + snippet);
        Logger.log("---");
      }
    }
  }
}

Чтобы использовать этот код, выполните следующие действия:

  1. Откройте редактор скриптов Google Apps, перейдя в https://script.google.com/.
  2. Создайте новый проект и вставьте код в редактор скриптов.
  3. Сохраните проект и нажмите кнопку «Выполнить», чтобы выполнить функцию searchUnreadEmails().

Этот код будет регистрировать тему и фрагмент каждого непрочитанного электронного письма.