Skip to content

Still UnicodeEncodeError: 'ascii' codec can't encode characters in position 300-301 #229

@magoralczyk

Description

@magoralczyk

I have read here in the closed issues, that this problem has been fixed last year, maybe it is another one. I do not know, how to get to the problematic mail. I am assuming certain messages (because I see the files in the dest folder, which go up by date, until it breaks down), but when I move a lot of files in this timeframe into a nonsynced folder, the output does not change. I do not know how to analyze the problem.

Here is the complete output when syncing:

$ offlineimap -a martin
OfflineIMAP 8.0.1
Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v3.06, Python v3.12.12, OpenSSL 3.0.18 30 Sep 2025
Account sync martin:
*** Processing account martin
Establishing connection to mailsrv1:143 (martinremote)
Folder ablage [acc: martin]:
Creating new Local Status db for martinlocal:ablage
Folder Archive [acc: martin]:
Creating new Local Status db for martinlocal:Archive
Folder ablage [acc: martin]:
Syncing ablage: IMAP -> Maildir
Folder Archive [acc: martin]:
Syncing Archive: IMAP -> Maildir
Folder Drafts [acc: martin]:
Creating new Local Status db for martinlocal:Drafts
Syncing Drafts: IMAP -> Maildir
Folder INBOX [acc: martin]:
Creating new Local Status db for martinlocal:INBOX
Syncing INBOX: IMAP -> Maildir
Folder Junk [acc: martin]:
Creating new Local Status db for martinlocal:Junk
Syncing Junk: IMAP -> Maildir
Folder memos [acc: martin]:
Creating new Local Status db for martinlocal:memos
Syncing memos: IMAP -> Maildir
Folder Sent [acc: martin]:
Creating new Local Status db for martinlocal:Sent
Syncing Sent: IMAP -> Maildir
Folder Trash [acc: martin]:
Creating new Local Status db for martinlocal:Trash
Syncing Trash: IMAP -> Maildir
Folder ablage [acc: martin]:
Copy message UID 11422 (11404/16614) martinremote:ablage -> martinlocal:ablage
Copy message UID 11423 (11405/16614) martinremote:ablage -> martinlocal:ablage
Copy message UID 11425 (11406/16614) martinremote:ablage -> martinlocal:ablage
Copy message from martinremote:ablage:
ERROR: Copying message 11422 [acc: martin]
'ascii' codec can't encode characters in position 300-301: ordinal not in range(128)
Thread 'Copy message from martinremote:ablage' terminated with exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/offlineimap/threadutil.py", line 146, in run
Thread.run(self)
File "/usr/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.12/site-packages/offlineimap/folder/Base.py", line 827, in copymessageto
new_uid = dstfolder.savemessage(uid, message, flags, rtime)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/offlineimap/folder/Maildir.py", line 408, in savemessage
tmpname = self.save_to_tmp_file(messagename, msg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/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 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'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'ascii' codec can't encode characters in position 300-301: ordinal not in range(128)

Last 2 debug messages logged for Copy message from martinremote:ablage prior to exception:
thread: Register new thread 'Copy message from martinremote:ablage' (account 'martin')
maildir: Write mail 'ablage:11422' with flags {'S'}
ERROR: Exceptions occurred during the run!
ERROR: Copying message 11422 [acc: martin]
UnicodeEncodeError: 'ascii' codec can't encode characters in position 300-301: ordinal not in range(128)

Folder ablage [acc: martin]:
Copy message UID 11426 (11407/16614) martinremote:ablage -> martinlocal:ablage

Traceback:
File "/usr/local/lib/python3.12/site-packages/offlineimap/folder/Base.py", line 827, in copymessageto
new_uid = dstfolder.savemessage(uid, message, flags, rtime)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/offlineimap/folder/Maildir.py", line 408, in savemessage
tmpname = self.save_to_tmp_file(messagename, msg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/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 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'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions