Получить изображение из email'a - Python

Узнай цену своей работы

Формулировка задачи:

Привет ребята, начал изучать пайтон и сразу взялся за проектик для коллеги, короче есть малина(Raspberry Pi) которая подключается к цифровой рамке через HDMI, и нужно чтобы малина с каким-то определенным интервалом проверяла имейл пользователя на наличие сообщение с прикрепленными изображениями и выводила это добро на экран цифровой рамки, С малиной работать буду позже, хочу для начала разобраться как распарсить изображение можно. Ниже прикрепляю добро какое у меня есть уже, я могу уже - залогиниться на почтовом сервере, - найти последний имейл - открыть его и прочитать контент в файл, и вот в файле у меня есть текст My email [image: Inline image 1] текст это хорошо, но как добраться до заветной картинки? Буду благодарен за любые советы!
Листинг программы
  1. import imaplib
  2. import email
  3. log = "removed@mail.ru"
  4. pasw = "xxxxxxxxx"
  5. mail = imaplib.IMAP4_SSL('imap.gmail.com')
  6. mail.login(log, pasw)
  7. mail.list
  8. mail.select("inbox")
  9. result, data = mail.search(None, "FROM", "removed@mail.ru")
  10. ids = data[0]
  11. id_list = ids.split()
  12. latest_email_id = id_list[-1]
  13. result, data = mail.fetch(latest_email_id, "(RFC822)")
  14. raw_email = data[0][1]
  15. #continue inside the same for loop as above
  16. raw_email_string = raw_email.decode('utf-8')
  17. # converts byte literal to string removing b''
  18. email_message = email.message_from_string(raw_email_string)
  19. # this will loop through all the available multiparts in mail
  20. for part in email_message.walk():
  21. if part.get_content_type() == "text/plain": # ignore attachments/html
  22. body = part.get_payload(decode=True)
  23. save_string = str("Dumpgmailemail_" + str(latest_email_id) + ".txt")
  24. # location on disk
  25. myfile = open(save_string, 'w')
  26. myfile.write(body.decode('utf-8'))
  27. # body is again a byte literal
  28. myfile.close()
  29. else:
  30. continue
  31. file = open("1.txt","w")
  32. file.write(raw_email_string)

Решение задачи: «Получить изображение из email'a»

textual
Листинг программы
  1. raw_email_string = raw_email.decode('utf-8')
  2. email_message = email.message_from_string(raw_email_string)
  3. payloads = email_message.get_payload()
  4.  
  5. for payload in payloads:
  6.     if(payload.get_content_type() == 'image/jpeg'):
  7.         file_name = payload.get_filename()
  8.         open(file_name, 'wb').write(payload.get_payload(decode=True))
  9.  
  10. imaplib.IMAP4.logout(mail)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы