Самый простой способ использовать imaplib с Gmail - это использовать атрибут X-GM-RAW
, как описано на странице Gmail Imap Extensions .
Процесс будет такой:
Сначала подключитесь к учетной записи с соответствующим адресом электронной почты и паролем:
c = imaplib.IMAP4_SSL('imap.gmail.com', 993)
email = 'eggs@spam'
password = 'spamspamspam'
c.login(email, password)
Затем подключитесь к одной из папок / меток:
c.select("INBOX")
При необходимости вы можете перечислить все доступные папки / метки с помощью c.list()
.
Наконец, используйте метод поиска:
gmail_search = "has:attachment eggs OR spam"
status, data = c.search(None, 'X-GM-RAW', gmail_search)
В gmail_search
вы можете использовать тот же синтаксис поиска, который используется в расширенном поиске gmail .
Команда поиска вернет статус команды и идентификаторы всех сообщений, соответствующих вашему gmail_search.
После этого вы можете получать каждое сообщение по id с помощью:
for id in data[0].split():
status, data = gmail.fetch(id, '(BODY[TEXT])')