@Adminmiu22

Как получить почту с Email почтового ящика с помощью Python?

def connect():
    import imapclient
    number = 1
    login = '***22-3@mail.ru'
    password = 'Sxz3***PDpFvxb'
    server = 'imap.mail.ru'

    imapObj = imapclient.IMAPClient(server, ssl=True)
    imapObj.login(login, password)
    imapObj.select_folder('INBOX', readonly=True)
    UIDs = imapObj.search(['ALL'])
    for id_s in UIDs:
        print(f'Сообщение №{number}')
        rawMessages = imapObj.fetch(id_s, ['BODY[]'])
        give_text_message(rawMessages, id_s)
        number+=1


def give_text_message(r_mess, id_mes):
    import pyzmail
    import email
    message = pyzmail.PyzMessage.factory(r_mess[id_mes][b'BODY[]'])
    fr_m = message.get_addresses('from')
    to = message.get_addresses('to')
    subject = message.get_subject()
    txt_message = message.get_payload()     ---<<< Проблема тут 
    print(f'===---===---===---===---===---===---===---\n'
        f'Сообщение от пользователя: \t {fr_m[0][0].ljust(10)} \t e-mail:{fr_m[0][1]}\n'
        f'На вашу почту: {to[0][1].rjust(32)}\n'
        f'Тема: {subject.rjust(24)}\n\n'
        f'Сообщение:\n{txt_message}\n\n')



if __name__ == '__main__':
    connect()


Проблема в том, что мои сообщения(обчные) декодируются в формате HTML, т.е с тегами
Например: div Приветос это сообщение номер 3 /div (скобки убрал)

А сообщения в другом формате, ДАЖЕ НЕ ЗНАЮ КАКОМ, например восстановление пароля от хабра:
Сообщение №6
===---===---===---===---===---===---===---
Сообщение от пользователя: Habr account mailer e-mail:account@habr.com
На вашу почту: **-22-3@mail.ru
Тема: Восстановление пароля от Хабр Аккаунта
Сообщение:

email.message.Message object at 0x02F7EF58, email.message.Message object at 0x02F7ED90

Приходят вот в таком формате
Помогите разобраться с этой проблемой, мне необходимо получить обычный текст сообщения, без тегов, если есть вложения нужны ссылки...
Буду максимально благодарен за помощь в этом вопросе

И еще есть вопрос номер 2:
У меня возникла проблема с подключением к ящику Gmail и yandex
Может кто то с этим сталкивался?
Gmail ругаеться на SSL
Yandex на какие то общие проблемы
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Adminmiu22 Автор вопроса
Проблема в том, что мои сообщения(обчные) декодируются в формате HTML, т.е с тегами

В общем проблему с тегами решил так:
txt_message = txt_message.replace("</div>", "\n")
        txt_message = txt_message.replace("<div>", "")

Жутко некрасиво, говнокод... но к сожелению другого ответа от вас, уважаемые пользователи, я не получил)

Проблема с почтой от яндекса, решается кардинально. Почему то если использовать библиотеку imaplib
все работает отлично, и *mail.ru и с *yandex.ru? но придется переписывать весь код
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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