Search code examples
pythonemailcharacter-encodingquoted-printablepoplib

Trailing equal signs (=) in emails


I download messages from a Gmail account using POP3 and save them in a SQLite database for futher processing:

mailbox = poplib.POP3_SSL('pop.gmail.com', '995') 
mailbox.user(user) 
mailbox.pass_(password)

msgnum = mailbox.stat()[0]

for i in range(msgnum):
    msg = '\n'.join(mailbox.retr(i+1)[1])
    save_message(msg, dbmgr)

mailbox.quit()

However, looking in the database, all lines but the last one of the message body (payload) have trailing equal signs. Do you know why this happens?


Solution

  • Frederic's link lead me to the answer. The encoding is called "quoted printable" (wiki) and it's possible to decode it using the quopri Python module (documentation):

    msg.decode('quopri').decode('utf-8')