Что означает вывод поиска imaplib.IMAP4_SSL (). В Python? - PullRequest
0 голосов
/ 15 мая 2018
m = imaplib.IMAP4_SSL('imap.gmail.com')
typ, accountDetails =m.login(userName, passwd)
m.select("inbox")
resp, data = m.search(None, "(ON {0})".format( time.strftime("%d-%b-%Y") ),'(FROM "email")' )
print(resp)
print(data)

Это дает мне вывод:

OK
[b'6391 6395']

Таким образом, я предполагаю, что «ОК» означает, что он нашел электронное письмо, но я не уверен, что означает «[b» 6391 6395 »]. Что эти цифры представляют?

1 Ответ

0 голосов
/ 16 мая 2018

imaplib на самом деле не анализирует ответы, поэтому вы получаете довольно сырой ответ из библиотеки. OK - это общий ответ на команду, что означает, что сервер понял ваш запрос.

Каждая строка ответа возвращается как элемент в списке. SEARCH возвращает только одну строку, поэтому у вас есть список из одного элемента. Поскольку imaplib не выполняет никакого анализа, вы получаете текст этого ответа в его оригинальном формате: объект байтов с разделенными пробелами числами, представляющими порядковые номера сообщений.

Вы сможете получить список MSN с msns = data[0].split(b' ').

Затем вы можете просмотреть этот список, чтобы получить дополнительную информацию, например:

for msn in msns:
  resp, data = m.fetch(msn, '(RFC822)')
...