2014-10-12 20 views
12

Rozejrzałem się i nie mogłem znaleźć satysfakcjonującej odpowiedzi. Czy ktoś wie, jak analizować pliki .msg z perspektywy w Pythonie?Analiza plików msms z pytonem

Próbowałem używać mimetools i email.parser bez powodzenia. Pomoc byłaby bardzo ceniona!

Odpowiedz

12

Działa to dla mnie:

import win32com.client 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
msg = outlook.OpenSharedItem(r"C:\test_msg.msg") 

print msg.SenderName 
print msg.SenderEmailAddress 
print msg.SentOn 
print msg.To 
print msg.CC 
print msg.BCC 
print msg.Subject 
print msg.Body 

count_attachments = msg.Attachments.Count 
if count_attachments > 0: 
    for item in range(count_attachments): 
     print msg.Attachments.Item(item + 1).Filename 

del outlook, msg 
+4

Ważne jest, aby pamiętać, że metoda OpenSharedItem oczekuje bezwzględnej ścieżki, w przeciwnym razie wystąpi błąd. – smartexpert

+1

Mam problemy z kodowaniem. Jak możesz to rozwiązać? – firko

3

Chociaż jest to stary wątek, mam nadzieję, że ta informacja może pomóc komuś, kto szuka rozwiązania, co podlega wątek dokładnie mówi. Zdecydowanie zalecamy zastosowanie rozwiązania mattgwwalker in github, które wymaga, aby OleFileIO_PL module było instalowane na zewnątrz.

0

Próbowałem moduł e-python, a czasami, że nie udało się przetworzyć plik msg.

Tak więc, w tym przypadku, jeśli jesteś tylko po tekście lub html, poniższy kod pracował dla mnie.

start_text = "<html>" 
end_text = "</html>" 
def parse_msg(msg_file,start_text,end_text): 
    with open(msg_file) as f: 
    b=f.read() 
    return b[b.find(start_text):b.find(end_text)+len(end_text)] 

print parse_msg(path_to_msg_file,start_text,end_text)