У меня возникает ошибка при чтение письма AttributeError: 'int' object has no attribute 'decode'

Рейтинг: 0Ответов: 0Опубликовано: 10.03.2023

У меня есть бот для чтения писем, при работе с почтовым сервисом Mail.ru не возникает никаких проблем, но как только я перехожу на другую почту, например yandex вылетает ошибка, Python представляет мое письмо не в виде байтов, а как целое, не понимаю, с чем это может быть связано.
Ошибка в строке: msg = email.message_from_bytes(messages_raw) Ошибка

  File "C:\Users\тимур\PycharmProjects\mail_reader-master(завод)\main.py", line 88, in <module>
    main()
  File "C:\Users\тимур\PycharmProjects\mail_reader-master(завод)\main.py", line 31, in main
    msg = email.message_from_bytes(messages_raw)
  File "C:\Anaconda3\lib\email\__init__.py", line 46, in message_from_bytes
    return BytesParser(*args, **kws).parsebytes(s)
  File "C:\Anaconda3\lib\email\parser.py", line 122, in parsebytes
    text = text.decode('ASCII', errors='surrogateescape')
AttributeError: 'int' object has no attribute 'decode'
def main():
    imap = functions.connection()  #Функция подключения к почте
    if not imap:                    #Если подлючиться не удалось вызов ошибки
        sys.exit()

    status, messages = imap.select("INBOX")  # папка входящие
    res, unseen_msg = imap.uid("search", "UNSEEN", "ALL")
    unseen_msg = unseen_msg[0].decode(config.encoding).split(" ")


    if unseen_msg[0]:
        for letter in unseen_msg:
            functions.download_attachment(unseen_msg) #Функция загрузки вложений
            res, msg = imap.uid("fetch", letter, "(RFC822)")
            if res == "OK":
                messages_raw = msg[0][1]
                msg = email.message_from_bytes(messages_raw)
                msg_date = functions.date_parse(email.utils.parsedate_tz(msg["Date"]))
                msg_from = functions.from_subj_decode(msg["From"])
                msg_subj = functions.from_subj_decode(msg["Subject"])
                if msg["Message-ID"]:
                    msg_id = msg["Message-ID"].lstrip("<").rstrip(">")
                else:
                    msg_id = msg["Received"]
                if msg["Return-path"]:
                    msg_email = msg["Return-path"].lstrip("<").rstrip(">")
                else:
                    msg_email = msg_from

Пробовал преобразовывать email.message_from_string, проблема не решилась

Ответы

Ответов пока нет.