We have this code:

import imaplib import email mail = imaplib.IMAP4_SSL('imap.gmail.com') mail.login('frozenace1305@gmail.com', 'loveyou4evet') mail.list() mail.select("inbox") result, data = mail.search(None, "ALL") ids = data[0] id_list = ids.split() latest_email_id = id_list[-1] result, data = mail.fetch(latest_email_id, "(RFC822)") raw_email = data[0][1] mail = email.message_from_bytes(raw_email) subject = mail.get('Subject') h = email.header.decode_header(subject) print(h) 

We get this result

 [(b'INTUIT.ru: \xd0\x9f\xd0\xbe\xd0\xb2\xd1\x8b\xd1\x88\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 \xd0\xba\xd0\xb2\xd0\xb0\xd0\xbb\xd0\xb8\xd1\x84\xd0\xb8\xd0\xba\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb8 \xd0\xbf\xd0\xbe \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb5 \xd0\xb8\xd0\xbd\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb0\xd1\x86\xd0\xb8\xd0\xbe\xd0\xbd\xd0\xbd\xd0\xbe\xd0\xb9 \xd0\xb1\xd0\xb5\xd0\xb7\xd0\xbe\xd0\xbf\xd0\xb0\xd1\x81\xd0\xbd\xd0\xbe\xd1\x81\xd1\x82\xd0\xb8 \xd1\x81\xd0\xbe\xd0\xb3\xd0\xbb\xd0\xb0\xd1\x81\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb0 \xd1\x81 \xd0\xa4\xd0\xa1\xd0\xa2\xd0\xad\xd0\x9a \xd0\xa0\xd0\xbe\xd1\x81\xd1\x81\xd0\xb8\xd0\xb8', 'utf-8')] 

How to turn it into Cyrillic?

    1 answer 1

     encoded_title, encoding = h[0] decoded_title = encoded_title.decode(encoding) 
    • Thank you very much. What in your example title? If this is encoded_title, then we get the error: decoded_title = encoded_title.decode (encoding) AttributeError: 'str' object has no attribute 'decode' - Hoa Viet
    • Strange, because in your output you can see that the first element is not str . - Sergey Gornostaev
    • Thank you very much, it all worked. A new message arrived and there was no need to decode anything. - Hoa Viet