UkaUkaa
@UkaUkaa
По специальности программист, по жизни леньтяй

Почему при чтение письма с почты по IMAP ошибка?

Все письма читаются, но некоторые выдают ошибку

Traceback (most recent call last):
  File "C:\Users\admin\Desktop\mail.py", line 121, in <module>
    if LastSubject != ReadingMail():
  File "C:\Users\admin\Desktop\mail.py", line 50, in ReadingMail
    body = payload.get_payload(decode=True).decode('UTF-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte


Кусок кода
email_message = email.message_from_string(raw_email_string, policy=policy.default)
		
	if email_message.is_multipart():
		for payload in email_message.get_payload():
			body = payload.get_payload(decode=True).decode('UTF-8')
			#print(body)
	else:    
		body = email_message.get_payload(decode=True).decode('UTF-8')
		#print(body)

Как исправить эту ошибку чтобы читались все письма и без ошибки?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Вы пытаетесь обработать письма, предполагая, что все они - в utf8. Разумеется, в случае других кодировок может вываливаться ошибка.

Приводите заранее текст к Юникоду, например. Или вырезайте все невалидные для него символы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы