Я пытаюсь получить всевозможные письма, которые мне пришли на почту Gmail. Но почему-то мне приходит ошибка

import json

import requests

url_site = 'https://www.googleapis.com/gmail/v1/users/me/messages'
response = requests.get(url_site)
data = json.loads(response.content.decode('utf-8'))
print(data)

Ответы (1 шт):

Автор решения: Стас

Вы сказали

получить все возможные письма которые мне пришли на почту Gmail

Этот скрипт получает имена отправителей всех писем, но там, где в коде "примечание 1" можно заменить from на date, subject и т.д. чтобы получать другие данные. (Не все данные можно преобразовать в header)

Также, чтобы подключиться к gmail через python нужно разрешить небезопасные приложения в настройках аккаунта (здесь). Для подключения к Яндексу такого не нужно.

Ещё у вас должно быть разрешено подключение по IMAP (Gmail - настройки - Пересылка и POP/IMAP - включаете IMAP, и, по желанию, убираете ограничения на размер папки IMAP)

import imaplib
import email
from email.header import Header, decode_header, make_header

imap = imaplib.IMAP4_SSL('imap.gmail.com') #сервер imap
imap.login('LOGIN', "PASSWORD") #ваш логин и пароль
imap.select('INBOX') #подключаемся к папке "Входящие"

mails = (len(str(imap.search(None, 'ALL')).split(" ")) - 1) #количество всех
#писем на почте (способ не лучший, но работает)

for i in range(1, mails + 1): #проходимся по всем письмам 
    status, data = imap.fetch(str(i), '(RFC822)')#получение письма
    msg_raw = email.message_from_bytes(data[0][1])
    msg = str(make_header(decode_header(msg_raw['From'])))#преобразование
    #в читабельный вид (примечание 1)
    print(msg)

imap.close() #закрытие соединения
imap.logout() #и выход из аккаунта
→ Ссылка