Извлечение только заголовки писем в Python - PullRequest
11 голосов
/ 08 декабря 2011

У меня возникают некоторые проблемы при попытке извлечь все заголовки писем в python. Я знаю, как получить те, которые я ищу, но я хочу сохранить все заголовки, и я не уверен, как это сделать.

Я загрузил его в объект электронной почты

import email
f = open(kwargs['opt_emailfile'])
msg = email.message_from_file(f)
f.close()

Так что я могу получить

msg['To']
msg['From']

Но я хочу все заголовки

Решение

Вот что я сделал благодаря ответу

        f = open(kwargs['opt_emailfile'])
        msg = email.message_from_file(f)
        f.close()

        parser = email.parser.HeaderParser()
        headers = parser.parsestr(msg.as_string())

        for h in headers.items():
            print h

1 Ответ

15 голосов
/ 08 декабря 2011

Использование HeaderParser возможно:

from email.parser import HeaderParser
parser = HeaderParser()
h = parser.parsestr(email)

print h.keys()

Я только что заметил, что вы редактировали свой вопрос. Вы можете фактически получить ту же информацию из того, что у вас было, без использования HeaderParser. например headers.items() вернет список из двух кортежей с заголовками и соответствующими значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...