Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python, imaplib и mail.ru / 2 сообщений из 2, страница 1 из 1
21.09.2014, 08:37
    #38752805
greenR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
python, imaplib и mail.ru
Здравствуйте.
Пытаюсь с помощью imap прочитать почту с почтового ящика на mail.ru.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
import imaplib
import email

imaplib._MAXLINE = 400000
login = ''
password = ''

box = imaplib.IMAP4_SSL('imap.mail.ru', 993)
box.login(login, password)
box.select()

typ, data = box.search(None, '(UNSEEN)')
id_list = data[0].split()

for num in id_list:
    typ, data = box.fetch(num, '(RFC822)')
    raw_mail = data[0][1]
    print(data)
    mail = email.message_from_string(raw_mail)
    subject = mail.get('Subject')
    h = email.header.decode_header(subject)
    msg = ''
...


Вообще, заметил, что любой ответ с сервера (о количестве писем и т.п., ошибки) приходил в виде b''
Например здесь, при выводе data он показывал
[(b'169 (RFC822 {7296}', b'(тело письма)', b')']
Проблема решалась простым data[0][1].decode(), пока не стали попадаться письма с кодировкой cp1251 внутри, выдавало ошибку о преобразовании (например 'utf-8' codec can't decode byte 0xdd in position 92). Получается в самом письме кодировка одна, а сам ответ сервера экранирован b''.
Как в итоге получать раскодированное письмо?
...
Рейтинг: 0 / 0
24.09.2014, 09:42
    #38755603
greenR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
python, imaplib и mail.ru
В общем, заменил email.message_from_string на email.message_from_bytes и все пошло хорошо.
До одного момента. Обнаружил, что письма, иногда, имеют поле Subject (тема) без указания кодировки, в итоге питон парсит как unknown 8bit, как быть в такой ситуации? Тот же веб-интерфейс и почтовики как-то определяют кодировку таких писем и верно отображают.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python, imaplib и mail.ru / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]