Мой код проверяет почтовый ящик и пересылает каждое письмо другому пользователю.
Но я обнаружил, что одно и то же содержимое по-разному декодируется в зависимости от почтовых клиентов (я имею в виду, когда отправляется с account@gmail.com, с account@naver.com и др. c).
Например: что я набрал,
тема: тема
содержимое: это содержимое
для почтового клиента 1:
358 2020-04-22 18:12 : 23,249: run: DEBUG: тема имеет вид: =? Utf-8? B? C3ViamVjdA ==? =
359 2020-04-22 18: 12: 23,249: run: DEBUG: содержимое имеет вид: dGhpcyBpcyBjb250ZW50Cg ==
для почтового клиента 2:
178 2020-04-22 18: 12: 09,636: run: DEBUG: тема имеет вид: =? Utf-8? B? C3ViamVjdA ==? =
179 2020-04-22 18: 12: 09,636: запуск: DEBUG: содержимое получено как: dGhpcyBpcyBjb250ZW50Cg ==
для почтового клиента 3:
300 2020-04-22 18:12 : 16,494: run: DEBUG: тема пришла как: subject
301 2020-04-22 18: 12: 16,494: run: DEBUG: содержимое пришло как: это содержимое
Для 1 и 2 они одинаковы.
Но для 3 это другое.
Мой код с использованием примера imaplib:
typ, rfc = self.mail.fetch(num, '(RFC822)')
raw_email = rfc[0][1]
raw_email_to_utf8 = raw_email.decode('utf-8')
msg=email.message_from_string(raw_email_to_utf8)
content = msg.get_payload() #This is printed for the above debugging log.
Из-за этого некоторые письма отправляются со странным содержимым (темы снова хорошо закодированы)
Почему эта разница, и как я могу получить содержимое для по-разному декодированных?