Я получаю None в результате для письма, которое я написал с помощью Thunderbird или gmail webapp.python imaplib fetch result is none с простой электронной почтой от gmail
Например моя тема «myfancysubject», а текст просто «привет»
я не получаю никаких данных (нет) с помощью imaplib выборки операции с
result, data = mail.fetch(latest_email_id, '(RFC822)') # fetch the email body (RFC822) for the given ID
мое предположение почта имеет нет метки RFC822?
Но как я могу получить содержание этой почты?
вот мой полный код:
import imaplib
import email
try:
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'password')
labels = mail.list()
# Out: list of "folders" aka labels in gmail.
inbox = mail.select("inbox") # connect to inbox.
#result, data = mail.search(None, "ALL")
result, data = mail.uid('search', None, '(HEADER Subject "myfancysubject")')
ids = data[0] # data is a list.
id_list = ids.split() # ids is a space separated string
latest_email_id = None
if len(id_list) == 1:
latest_email_id = id_list[0] # get the latest
pass
else:
latest_email_id = id_list[-1]
pass
result, data = mail.fetch(latest_email_id, '(RFC822)') # fetch the email body (RFC822) for the given ID
print(data)
raw_email = data[0][0]
email_message = email.message_from_string(raw_email)
print email_message['To']
print email.utils.parseaddr(email_message['From'])
print email_message.items() # print all headers
except Exception:
print('Ex')
Не могли бы вы проверить до того, что 'last_email_id' не является None? – fredtantini
last_email_id не является ничем, его «{Str}« 13591 »и изменяет, если я напишу новый – svenhornberg
. Это стоило попробовать ... Не могли бы вы попробовать« альтернативно »в этом [ответе] (http://stackoverflow.com/ а/19545175/3336968)? – fredtantini