2017-10-06 3 views
1

été passé par de vieux messages, mais jusqu'à présent seulement trouvé des solutions pour l'identification par ex. expéditeur, destinataire, sujet. Je cherche à commencer sur le code qui permettrait d'analyser l'en-tête Internet similaire à des outils comme https://testconnectivity.microsoft.com/MHA/Pages/mha.aspx et https://toolbox.googleapps.com/apps/messageheader/.Analyseur d'en-têtes Internet en Python?

J'aimerais pouvoir extraire par ex. From, Reply-to, envoi de MX, IP d'origine X, X-mailer. Devrais-je créer un analyseur à partir de zéro ou y a-t-il quelque chose que je pourrais utiliser? Peut-être un échantillon ou quelque chose que vous pouvez partager?

Best, Fredrik

+0

Bienvenue dans StackOverflow. Veuillez lire et suivre les consignes de publication dans la documentation d'aide. [sur le sujet] (http://stackoverflow.com/help/on-topic) et [comment demander] (http://stackoverflow.com/help/how-to-ask) s'appliquent ici. StackOverflow n'est pas un service de conception, de codage, de recherche ou de tutorat. – Prune

+0

Noté Prune. Merci de me mettre directement! Veillera à prendre cela en compte pour les prochains posts. – frekn0

Répondre

0

module traite de courrier électronique avec e-mails tout à fait bien. Par exemple:

import email 

msg = email.message_from_file("some_saved_email.eml") 
# To get to headers, you treat the Message() as a dict: 
print msg.keys() # To get all headers 
print msg["X-Mailer"] # To get to header's value 

# Let us list the whole header: 
for header, value in msg.items(): 
    print header+": "+value 
+0

Super! THX! Existe-t-il un moyen d'obtenir également le MX d'origine? Quelle est la meilleure ressource pour lire sur le module avec des références aux valeurs disponibles (comme vous l'avez fait avec "X-mailer"? – frekn0

+0

Vouliez-vous dire "X-Originating-IP"? Pour apprendre à utiliser le module, la meilleure source est La documentation de Python Quant aux valeurs, elles ne sont pas fixes, il y a peu d'en-têtes obligatoires, d'autres peuvent être omis, ou remplacés par d'autres, chaque maileur ajoute des en-têtes spécifiques et des anti-virus peuvent rejoindre la balle. et les serveurs POP.Vous devez vraiment voir quels en-têtes sont disponibles dans le courrier examiné, puis en prendre les plus utiles.Allez autour des en-têtes de courriel et faites votre propre liste de ceux que vous allez essayer d'obtenir (attention à la synonymie uns) – Dalen

+0

Merci Dalen! J'ai des en-têtes d'échantillon et maintenant avec votre aide les lisons dans une variable, mais ne peut pas sembler pouvoir employer votre syntaxe? Testant ceci, qui fonctionne - headers = Parser(). open ("mailheader.txt", "r")). Cependant, un ccept le print msg ["X-Mailer"] par exemple, mais print (en-têtes ['From:']) retournera au moins None. Je suppose que j'ai des choses à lire, mais si vous avez quelques conseils, ce serait grandement apprécié! – frekn0