Skip to content

UnicodeEncodeError in email.generator.py #131655

@Elvis33LE

Description

@Elvis33LE

Bug report

Bug description:

Running offlineimap to sync my german GMX mail account to my homeserver an issue occured:

`ERROR: Copying message 49813 [acc: GMX]

  UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-37: ordinal not in range(128)

Traceback:

  File "/usr/share/offlineimap3/offlineimap/folder/Base.py", line 828, in copymessageto

    new_uid = dstfolder.savemessage(uid, message, flags, rtime)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/share/offlineimap3/offlineimap/folder/Maildir.py", line 408, in savemessage

    tmpname = self.save_to_tmp_file(messagename, msg)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/share/offlineimap3/offlineimap/folder/Maildir.py", line 359, in save_to_tmp_file

    fd.write(msg.as_bytes(policy=output_policy))

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/lib/python3.12/email/message.py", line 208, in as_bytes

    g.flatten(self, unixfrom=unixfrom)

  File "/usr/lib/python3.12/email/generator.py", line 117, in flatten

    self._write(msg)

  File "/usr/lib/python3.12/email/generator.py", line 182, in _write

    self._dispatch(msg)

  File "/usr/lib/python3.12/email/generator.py", line 219, in _dispatch

    meth(msg)

  File "/usr/lib/python3.12/email/generator.py", line 286, in _handle_multipart

    g.flatten(part, unixfrom=False, linesep=self._NL)

  File "/usr/lib/python3.12/email/generator.py", line 117, in flatten

    self._write(msg)

  File "/usr/lib/python3.12/email/generator.py", line 182, in _write

    self._dispatch(msg)

  File "/usr/lib/python3.12/email/generator.py", line 219, in _dispatch

    meth(msg)

  File "/usr/lib/python3.12/email/generator.py", line 286, in _handle_multipart

    g.flatten(part, unixfrom=False, linesep=self._NL)

  File "/usr/lib/python3.12/email/generator.py", line 117, in flatten

    self._write(msg)

  File "/usr/lib/python3.12/email/generator.py", line 182, in _write

    self._dispatch(msg)

  File "/usr/lib/python3.12/email/generator.py", line 219, in _dispatch

    meth(msg)

  File "/usr/lib/python3.12/email/generator.py", line 278, in _handle_multipart

    self.write(subparts)

  File "/usr/lib/python3.12/email/generator.py", line 420, in write

    self._fp.write(s.encode('ascii', 'surrogateescape'))

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`

I was able to fix this by changing line 420 in generator.py

try:
    self._fp.write(s.encode('ascii', 'surrogateescape'))
except:
    self._fp.write(s.encode('utf-8', 'replace'))

CPython versions tested on:

3.12

Operating systems tested on:

Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    pendingThe issue will be closed if no feedback is providedstdlibStandard Library Python modules in the Lib/ directorytopic-emailtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions