Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import poplib
- import email
- from base64 import b64decode
- pop3_server = 'pop.gmail.com'
- pop3_port = '995'
- username = 'XXXXXXXXXX@gmail.com'
- password = 'XXXXXXXXXXXXXX'
- M = poplib.POP3_SSL(pop3_server, pop3_port)
- M.user(username)
- M.pass_(password)
- numMessages = len(M.list()[1])
- def decode_header(header):
- decoded_bytes, charset = email.header.decode_header(header)[0]
- if charset is None:
- return str(decoded_bytes)
- else:
- return decoded_bytes.decode(charset)
- for i in range(numMessages):
- raw_email = b"\n".join(M.retr(i+1)[1])
- parsed_email = email.message_from_bytes(raw_email)
- print('=========== email #%i ============' % i)
- print('From:', parsed_email['From'])
- print('To:', parsed_email['To'])
- print('Date:', parsed_email['Date'])
- print('Subject:', decode_header(parsed_email['Subject']))
- for part in parsed_email.walk():
- if part.is_multipart():
- # maybe need also parse all subparts
- continue
- elif part.get_content_maintype() == 'text':
- text = part.get_payload(decode=True).decode(part.get_content_charset())
- print('Text:\n', text)
- elif part.get_content_maintype() == 'application' and part.get_content_disposition() == 'attachment':
- name = decode_header(part.get_filename())
- body = part.get_payload(decode=True)
- size = len(body)
- print('Attachment: "{}", size: {} bytes, starts with: "{}"'.format(name, size, body[:50]))
- else:
- print('Unknown part:', part.get_content_type())
- print('======== email #%i ended =========' % i)
Add Comment
Please, Sign In to add comment