4

是否有可以解析 msg 或 eml 文件的库?我编写了一个脚本,一旦将电子邮件转换为 txt 文件,它就会对其进行解析,但是我找不到允许我轻松地将电子邮件从 gui 拖放到文件夹中作为 txt 文件的电子邮件客户端(如果有人知道这一点我愿意知道!)

从 Outlook 拖放会创建一个 .msg 文件,而 Thunderbird 会创建一个 .eml 文件。有谁知道会解析这些文件的库?

4

3 回答 3

8

对于 *.eml 文件,您可以使用标准库中的电子邮件模块。您将需要使用来自 email.parser 的 Parser 来创建消息对象。

于 2012-01-27T23:39:25.947 回答
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")`
于 2017-06-29T14:45:34.313 回答
0

是的,在我的工作中,我为独立软件公司测试了 MSG PY 模块。这是适用于 Python 的 Microsoft Outlook .msg 文件模块:

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))
于 2019-12-01T19:34:06.773 回答