Поскольку вы заявляете, что плохо знакомы с программированием, мой лучший совет: всегда читайте документацию.
И, возможно, вам следует сначала прочитать учебник .
Документация содержит пример:
import getpass, imaplib
M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
print 'Message %s\n%s\n' % (num, data[0][3])
M.close()
M.logout()
Вы пробовали?
Относительно вашего кода:
Когда вы определяете for
цикл , он должен выглядеть следующим образом:
for x in some_data_set:
x
- это переменная, которая содержит значение одного элемента за раз (и доступна только в теле цикла for (за одним исключением, но это здесь не важно)).
То, что вы делаете, связано не с модулем imaplib, а с неправильным синтаксисом.
Btw. .select()
выбирает почтовый ящик и возвращает только количество сообщений в почтовом ящике . То есть просто скалярное значение, без последовательности, которую вы могли бы перебрать:
IMAP4.select ([почтовый ящик [, только для чтения]])
Выберите почтовый ящик. Возвращаемые данные - это количество сообщений в почтовом ящике (ответ EXISTS). Почтовый ящик по умолчанию - «INBOX». Если установлен флаг только для чтения, изменения в почтовом ящике запрещены.
(Это действительно относится к модулю imaplib;))