Cameron Simpson <c...@cskk.id.au> writes: > On 01Nov2024 10:10, Loris Bennett <loris.benn...@fu-berlin.de> wrote: >>as expected. The non-UTF-8 text occurs when I do >> >> mail = EmailMessage() >> mail.set_content(body, cte="quoted-printable") >> ... >> >> if args.verbose: >> print(mail) >> >>which is presumably also correct. >> >>The question is: What conversion is necessary in order to print the >>EmailMessage object to the terminal, such that the quoted-printable >>parts are turned (back) into UTF-8? > > Do you still have access to `body` ? That would be the original > message text? Otherwise maybe: > > print(mail.get_content()) > > The objective is to obtain the message body Unicode text (i.e. a > regular Python string with the original text, unencoded). And to print > that.
With the following: ###################################################################### import email.message m = email.message.EmailMessage() m['Subject'] = 'Übung' m.set_content('Dies ist eine Übung') print('== cte: default == \n') print(m) print('-- full mail ---') print(m) print('-- just content--') print(m.get_content()) m.set_content('Dies ist eine Übung', cte='quoted-printable') print('== cte: quoted-printable ==\n') print('-- full mail --') print(m) print('-- just content --') print(m.get_content()) ###################################################################### I get the following output: ###################################################################### == cte: default == Subject: Übung Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 RGllcyBpc3QgZWluZSDDnGJ1bmcK -- full mail --- Subject: Übung Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 RGllcyBpc3QgZWluZSDDnGJ1bmcK -- just content-- Dies ist eine Übung == cte: quoted-printable == -- full mail -- Subject: Übung MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Dies ist eine =C3=9Cbung -- just content -- Dies ist eine Übung ###################################################################### So in both cases the subject is fine, but it is unclear to me how to print the body. Or rather, I know how to print the body OK, but I don't know how to print the headers separately - there seems to be nothing like 'get_headers()'. I can use 'get('Subject) etc. and reconstruct the headers, but that seems a little clunky. Cheers, Loris -- This signature is currently under constuction. -- https://mail.python.org/mailman/listinfo/python-list