我在python3中使用了邮件解析器模块来提取附件。EML 文件(代码如下所示(
import mailparser
mail = mailparser.parse_from_file(filepath)
msg_body = mail.body.split('--- mail_boundary ---', 1)[0]
msg_subject = mail.subject
msg_attachments = mail.attachments
print(msg_subject)
我无法将上面的代码用于.味精文件。它不起作用。有没有更好的方法可以做到这一点?我试过extract_msg,email_parser但没有运气。
使用的是mail-parser
软件包列出的一个pypi,那么根据他们的文档,您必须libemail-outlook-message-perl
软件包与mail-parser
软件包一起安装。
在 Debian 上:
apt-get install libemail-outlook-message-perl
有关详细信息,您可以这样做(假设您有一个 debian 操作系统(:
apt-cache show libemail-outlook-message-perl
您可以在此处找到其他软件包的下载。
这是他们的github存储库。
如果您有Windows,那么一个快速的解决方案是使用这样的网站将.msg文件转换为.eml文件。另一种方法是从他们的 github 存储库手动构建包。
是的,有一种方法可以做到这一点。在我的工作中,我测试了味精 PY 模块。这是 Python 的 Outlook .msg Microsoft 文件模块。该模块允许您轻松创建/读取/解析/转换Outlook.msg文件。该模块不需要在计算机上安装Microsoft Outlook或任何其他第三方应用程序或库即可工作。例如:
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))