Extrait juste en-têtes en python
Je vais avoir quelques problèmes en essayant d'extraire tous les e-mails en python. Je sais comment obtenir ceux que je cherche, mais je veux sauver tous les en-têtes et je ne suis pas sûr de la façon de le faire.
Je l'ai chargé dans un e-mail objet
import email
f = open(kwargs['opt_emailfile'])
msg = email.message_from_file(f)
f.close()
Afin que je puisse obtenir
msg['To']
msg['From']
Mais je veux que tous les en-têtes
Solution
Voici ce que j'ai fait merci pour la réponse
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
Qu'avez-vous essayé jusqu'à présent? Avez-vous quelques partiellement de travail, ou de la non-code de travail?
ok édité mon post pour ce que j'ai à ce jour
ok édité mon post pour ce que j'ai à ce jour
OriginalL'auteur Mike | 2011-12-07
Vous devez vous connecter pour publier un commentaire.
À l'aide de HeaderParser peut-être:
Je viens de remarquer que vous avez édité votre question. Vous pouvez réellement obtenir la même information à partir de ce que vous aviez sans l'aide de HeaderParser. par exemple,
headers.items()
sera de retour liste de 2-tuples avec les en-têtes et les valeurs correspondantes.email
car il le nom d'un module, même si vous n'êtes pas l'importation deemail
directement.Ce (et de l'OP "solution" à la question elle-même) renvoie en fait tous les en-têtes dans l'ordre, même si le
keys()
genre de implique dictionnaire comme comportement.Adapté répondre à la question de mon propre à une question connexe: stackoverflow.com/a/42090598/874188
ceci est également wors si l'email est incomplète (les en-têtes uniquement)
OriginalL'auteur jan zegan