Мне нужно получить html из моих писем, написанный мною код отлично работал для других писем, но для письма от одного отправителя вместо HTML возвращалась большая строка символов.
обновление: полученная строка находится в base64, у меня все еще есть проблема, так как мой код получает только часть base64 электронной почты, но не HTML.
Вот как выглядит мой код:
m = imaplib.IMAP4_SSL('imap.mail.yahoo.com')
m.login('xxxxxx', 'xxxxxxxx')
rv, mailboxes = m.list()
if rv == 'OK':
print ("Mailboxes:")
print (mailboxes)
def process_mailbox(m):
rv, data = m.search(None, "ALL")
if rv != 'OK':
print ("No messages found!")
return
for num in data[0].split():
rv, data = m.fetch(num, '(RFC822)')
if rv != 'OK':
print ("ERROR getting message"), num
return
msg = email.message_from_string(data[0][1])
print ('Message %s: %s' % (num, msg['Subject']))
print ('Raw Date:', msg['Date'])
date_tuple = email.utils.parsedate_tz(msg['Date'])
if date_tuple:
local_date = datetime.datetime.fromtimestamp(
email.utils.mktime_tz(date_tuple))
print ("Local Date:"), \
local_date.strftime("%a, %d %b %Y %H:%M:%S")
m.select('MAILBOX', readonly=True)
resp, items = m.search(None, "ALL")
items = items[0].split() # getting the mails id
for emailid in items:
resp, data = m.fetch(emailid, "(RFC822)")
raw_email = data[0][1]
print (raw_email)
Обычно в этот момент я получаю сырое письмо, но на этот раз все, что я получил, было большой строкой символов и никогда не доходило до реального HTML:
Content-Length: 9617 X-Antivirus: Avast (VPS 190503-4, 05/03/2019), входящее сообщение X-Antivirus-Status: Clean PHRhYmxlIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBHZW5ldmEsIHNhbnMtc2Vy aWY7IiB3aWR0aD0iNjMwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEwIj4g PHRib2R5PgogPHRyPgogPHRkPgogPHRhYmxlIHN0eWxlPSJmb250LWZhbWlseTogVGFo b21hLCBHZW5ldmEsIHNhbnMtc2VyaWY7IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9 IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPiA8dGJvZHk + CiA8dHI + CiA8dGQg d2lkdGg9IjEwMCUiPjxjZW50ZXI + PGEgaHJlZj0iaHR0cHM6Ly9zaG9wLm1lcmNvbGEu Y29tIj48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpYS5tZXJjb2xhLmNvbS9hc3NldHMvaW1h Z2VzL3Nob3Bsb2dvL01lcmNvbGFfTG9nb3YyLnBuZyIgd2lkdGg9IjMxNCIgaGVpZ2h0 PSIzOSIgYm9yZGVyPSIwIiAvPjwvYT48L2NlbnRlcj48L3RkPgogPC90cj4KIDx0cj4K IDx0ZD4KPGhyIHN0eWxlPSJjb2xvcjogI2VjZWNlYzsgd2lkdGg6IDEwMCU7IiAvPjwv DGQ + CiA8L3RyPgogPC90Ym9keT4KIDwvdGFibGU + CiA8L3RkPgogPC90cj4KIDx0cj4K IDx0ZCBzdHlsZT0icGFkZGluZzogMTBweCAzMHB4IDMwcHggMzBweDsiPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6IDE1cHQ7IGZvbnQtd2VpZ2h0OiBib2xkOyBj b2xvcjogIzEy NmFhYTsiPlNoaXBwaW5nIENvbmZpcm1hdGlvbjwvc3Bhbj48YnIgLz48YnIgLz48Yj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB0OyI + RGVhciBQYXRyaWNpYSBTY2hsZXVz bmVyLDwvc3Bhbj48L2I + PGJyIC8 + PGJyIC8 + PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog MTJwdDsiPlRoYW5rIHlvdSBmb3IgeW91ciByZWNlbnQgb3JkZXIgZnJvbSA8YSBocmVm PSJodHRwczovL3Nob3AubWVyY29sYS5jb20iPk1lcmNvbGE8L2E + LiBXZSBhcmUgcGxl YXNlZCB0byBpbmZvcm0geW91IHRoYXQgeW91IGFyZSBub3cgb25lIHN0ZXAgY2xvc2Vy IHRvIHRha2luZyBjb250cm9sIG9mIHlvdXIgaGVhbHRoISBZb3VyIG9yZGVyIG51bWJl ciBPMTUwOTMxMDkgaGFzIGJlZW4gc2hpcHBlZCBhbmQgaXMgb24gaXRzIHdheSB0byB5 b3UuPGJyIC8 + PGJyIC8 + VGhlIHNoaXBtZW50IGRldGFpbHMgYXJlIGFzIGJlbG93Ojwv c3Bhbj48YnIgLz48YnIgLz4gPHRhYmxlIHN0eWxlPSJmb250LXNpemU6IDEycHQ7IGZv bnQtZmFtaWx5OiBUYWhvbWEsIEdlbmV2YSwgc2Fucy1zZXJpZjsgdGV4dC1hbGlnbjog bGVmdDsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9Ijci