Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnicodeDecodeError #73

Open
aleohl opened this issue Dec 15, 2023 · 9 comments
Open

UnicodeDecodeError #73

aleohl opened this issue Dec 15, 2023 · 9 comments

Comments

@aleohl
Copy link

aleohl commented Dec 15, 2023

Hello,

During receive of an email I got this error message 'utf-8' codec can't decode byte 0xf6 in position 499: invalid start byte.
I do think it was caused by åäö in the subject or body but not sure yet. Will try to reproduce and check what I can do in the code.

Thanks.

@geek-at
Copy link
Member

geek-at commented Dec 15, 2023

I too have seen this error but was never able to reproduce it. Please tell me when you can reproduce it 😁

@aleohl
Copy link
Author

aleohl commented Dec 15, 2023

I have the same issue, can't seem to find a way to reproduce it. Strange stuff

@DasDunkel
Copy link

I have managed to reproduce this error by using ö in the recipient address

Using it within the subject/body does not seem to cause the error

I'm using version 1.4.4

@sebastianflint
Copy link

I have the same error. Happens when sending mail from Outlook Client and inserting characters like "ö,ä"

@sebastianflint
Copy link

Still the same error with the newest 1.4.5 version.

Remote Server returned '554 5.0.0 <[45.9.60.49] #5.0.0 smtp; 5.3.0 - Other mail system problem 500-"Error: (UnicodeDecodeError) 'utf-8' codec can't decode byte 0xe4 in position 0: invalid continuation byte" (delivery attempts: 0)>'

@geek-at geek-at reopened this Jan 25, 2024
@Pay1337
Copy link

Pay1337 commented Apr 9, 2024

I solved the problem by using "latin1" instead of "utf8" in mailserver3.py.

@geek-at
Copy link
Member

geek-at commented Apr 15, 2024

Thanks for telling us this @Pay1337

I wonder though if this means it would crash, receiving UTF8 encoded email 🧐

@realalexandergeorgiev
Copy link

realalexandergeorgiev commented Nov 5, 2024

2024-11-05 10:27:27,836 - __main__ - DEBUG - Receiving message from: ('193.169.180.112', 40718) (Plaintext)
2024-11-05 10:27:27,836 - __main__ - DEBUG - Message addressed from: return@service.rmvmail.de
2024-11-05 10:27:27,836 - __main__ - DEBUG - Message addressed to: ['foo@foo.com']
('193.169.180.112', 40718) SMTP session exception
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/aiosmtpd/smtp.py", line 756, in _handle_client
    await method(arg)
  File "/usr/lib/python3.11/site-packages/aiosmtpd/smtp.py", line 1519, in smtp_DATA
    status = await self._call_handler_hook('DATA')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/aiosmtpd/smtp.py", line 473, in _call_handler_hook
    status = await hook(self, self.session, self.envelope, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/opentrashmail/python/mailserver3.py", line 74, in handle_DATA
    plaintext += part.get_payload(decode=True).decode('utf-8')
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 249: invalid start byte

If you register at https://www.rmv.de/ you can reproduce it.

Cant retry, seems like there is a rate limit. If someone wants to try:
(vi /var/www/opentrashmail/python/mailserver3.py)

try:
    plaintext += part.get_payload(decode=True).decode('utf-8')
except UnicodeDecodeError:
    plaintext += part.get_payload(decode=True).decode('latin1')
except Exception as e:
        print(f"Error decoding payload: {e}")

fixed in fork, works for latin1:
realalexandergeorgiev@9aeae95

@geek-at
Copy link
Member

geek-at commented Nov 14, 2024

Oh nice, sounds like a good solution until the root cause is fixed. Can you do a pull request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants