2016-04-12 3 views
1

Я пытаюсь получать электронные письма на своем Pi, до сих пор я получаю письма из моего почтового ящика из gmail, но я пытаюсь их получить без всякого дополнительного контента, такого как идентификатор сообщения и тип контента. Я ищу чистый текст тела электронной почты. У меня это до сих пор ....Получение писем в Python

import imaplib 

mail = imaplib.IMAP4_SSL('imap.gmail.com') 

mail.login('xxxxxxx', 'xxxxxx') 

mail.list 

mail.select("inbox") 


obj, data = mail.search(None, 'ALL') 

for num in data [0].split(): 

typ, data = mail.fetch(num, '(RFC822)') 

print 'Message %s\n%s\n' % (num, data[0][1]) 

mail.close() 

ответ

1

Попробуйте прохождение 'BODY[1]' как строки, в отличие от '(RFC822)'.

Что такое 'BODY[1]', так это то, что он указывает, что вы хотите только текстовую/обычную часть сообщения электронной почты. Вы можете найти в этом документе RFC 3501, в котором подробно описаны команды FETCH в разделе 6.4.5 или стр. 53.

Надеюсь, это поможет!

+0

Я получил кучу ошибок с помощью этого :( Файл "email.py", строка 9 в типа, данные = mail.fetch (NUM, 'ТЕЛА [1]') и куча других ошибки в строке 455 и 1087 – JimmyJ

+0

Какие ошибки вы получаете? Я отредактировал свой ответ как менее конкретный (у меня не так много опыта использования Python 2.x, в основном используется Python 3.4). Однако спецификация строки должна –

+0

Im получение ошибки команды fetch: BAD ['Не удалось разобрать команду'], но также не нравится BODY [1] edit – JimmyJ

0

Так что я сделал ошибку новобранец, назвав мой файл email.py, а также не импортируя электронную почту!

спасибо.

Смежные вопросы