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

Reply via email to