On 31Oct2024 16:33, Loris Bennett <loris.benn...@fu-berlin.de> wrote:
I have a command-line program which creates an email containing German
umlauts. On receiving the mail, my mail client displays the subject and
body correctly:
[...]
So far, so good. However, when I use the --verbose option to print
the mail to the terminal via
if args.verbose:
print(mail)
I get:
Subject: Übungsbetreff
Sehr geehrter Herr Dr. Bennett,
Dies ist eine =C3=9Cbung.
What do I need to do to prevent the body from getting mangled?
That looks to me like quoted-printable. This is an encoding for binary
transport of text to make it robust against not 8-buit clean transports.
So your Unicode text is encodings as UTF-8, and then that is encoded in
quoted-printable for transport through the email system.
Your terminal probably accepts UTF-8 - I imagine other German text
renders corectly?
You need to get the text and undo the quoted-printable encoding.
If you're using the Python email module to parse (or construct) the
message as a `Message` object I'd expect that to happen automatically.
If you're just dealing with this directly, use the `quopri` stdlib
module: https://docs.python.org/3/library/quopri.html
Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list