I am writing a script to process emails, and I have access to the raw string content of the emails.
I am currently looking for the string "Content-Transfer-Encoding:" and scanning the characters that follow immediately after, to determine the encoding. Example encodings: base64 or 7bit or quoted-printable ..
Is there a better way to automatically determine the email encoding(at least a more pythonic way)?
You may use this standard Python package: email.
import email raw = """From: John Doe <email@example.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi there! """ my_email = email.message_from_string(raw) print my_email["Content-Transfer-Encoding"]
See other examples here.