read office mail how python outlook

python - office - outlook mail api



script para descargar archivos adjuntos de correo electrónico (1)

El módulo de email incluye una función message_from_bytes . Úselo en lugar de message_from_string para analizar un objeto de bytes .

m = email.message_from_bytes(email_body)

Estoy frente a un error en la línea 18 (m = email.message_from_string (email_body)) diciendo que TypeError: initial_value must be str or None, not bytes . Cuando trato de ejecutarlo diciendo print (data[0][1]) , me da una salida del correo electrónico en un formato codificado.

Quiero depurar el error.

import imaplib import email import os svdir = ''C://Users//rnandipati//Downloads'' mail = imaplib.IMAP4_SSL(''outlook.office365.com'',993) mail.login("[email protected]", "R!") mail.select("Inbox") typ, msgs = mail.search(None, ''(SUBJECT "ADP Files")'') msgs = msgs[0].split() for emailid in msgs: resp, data = mail.fetch(emailid, "(RFC822)") email_body = data[0][1] m = email.message_from_string(email_body) if m.get_content_maintype() != ''multipart'': continue for part in m.walk(): if part.get_content_maintype() == ''multipart'': continue if part.get(''Content-Disposition'') is None: continue filename = part.get_filename() if filename is not None: sv_path = os.path.join(svdir, filename) if not os.path.isfile(sv_path): print(sv_path) fp = open(sv_path, ''wb'') fp.write(part.get_payload(decode=True)) fp.close()