Задать вопрос

Как осуществить парсинг электронных адресов из почты и отправку на них ответа на Python?

Добрый день

Мне на почту mail.ru приходят ответы от одного из сервисов. В тексте письма этих писем указаны электронные адреса. Мне необходимо парсить эти письма, получать из них электронный адрес и отправлять ответ. Реализовать хочу на Python т.к. начал его изучать.

Подскажите, пожалуйста, в каком направлении копать. Я нашел модуль poplib для парсинга почты.
Но не пойму, как получить текст письма, чтобы потом пройтись по нему регулярным выражением - получить мыльник и отправить ответ. Спасибо
  • Вопрос задан
  • 4829 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
SilentSokolov
@SilentSokolov
Разве в документации не написано, что poplib.retr возвращает текст письма?

К примеру, это должно нормально работать на 2.7, код на основе примера.
(server_msg, body, octets) = M.retr(numMessages)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Prenom
Marketing Super-Mega-Puper Expert, Project Manager
Пример для imaplib + библиотека email, должен работать и на poplib.
Нужно учесть что письмо в 99% случаях мультипарт, итак, пример для 2.7:

import email
 
resp, data = M.FETCH(1, '(RFC822)')
mail = email.message_from_string(data[0][1])
 
for part in mail.walk():
  # мультипарт это лишь сборка контейнером (один для текста, другой для фоток и т.д.)
  if part.get_content_maintype() == 'multipart':
      continue
 
  # ищем текст (plain)
  if part.get_content_subtype() != 'plain':
    continue
 
  payload = part.get_payload()
  print payload
 
M.LOGOUT()


Как то руководствовался этим мануалом - segfault.in/2010/08/playing-with-python-and-gmail-...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы