Parsing msg/eml files with Python 2.7

ε祈祈猫儿з 提交于 2019-12-23 12:12:23

问题


Is there a library that can parse msg or eml files? I wrote a script that parses an email once it is converted to a txt file, but i cannot find an email client that allows me to easily drag-n-drop emails from the gui into a folder as a txt file (if someone knows this i would love to know!)

Drag-n-dropping from Outlook creates a .msg file and Thunderbird creates an .eml file. Does anyone know of a library that will parse these files like these?


回答1:


For *.eml files you can use email module from standard library. You will need to use Parser from email.parser to create a message object.




回答2:


`from mailparser import MailParser

parser = MailParser()
parser.parse_from_file(f)
parser.parse_from_string(raw_mail)
parser.body
parser.headers
parser.message_id
parser.to_
parser.from_
parser.subject
parser.text_plain_list: only text plain mail parts in a list
parser.attachments_list: list of all attachments
parser.date_mail
parser.parsed_mail_obj: tokenized mail in a object
parser.parsed_mail_json: tokenized mail in a JSON
parser.defects: defect RFC not compliance
parser.defects_category: only defects categories
parser.has_defects
parser.anomalies
parser.has_anomalies
parser.get_server_ipaddress(trust="my_server_mail_trust")`



回答3:


Yes there is, In my work, I test the MSG PY module for Independent soft company. This is Microsoft Outlook .msg file module for Python:

from independentsoft.msg import Message

appointment = Message("e:\\appointment.msg")

print("subject: " + str(appointment.subject))
print("start_time: " + str(appointment.appointment_start_time))
print("end_time: " + str(appointment.appointment_end_time))
print("location: " + str(appointment.location))
print("is_reminder_set: " + str(appointment.is_reminder_set))
print("sender_name: " + str(appointment.sender_name))
print("sender_email_address: " + str(appointment.sender_email_address))
print("display_to: " + str(appointment.display_to))
print("display_cc: " + str(appointment.display_cc))
print("body: " + str(appointment.body))


来源:https://stackoverflow.com/questions/8491152/parsing-msg-eml-files-with-python-2-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!