如何解决python:检查电子邮件附件是否已加密
我刚开始编写Python代码,并试图运行测试以确定电子邮件附件(.xls文件)是否已使用密码加密。我正在使用win32com从Outlook中检索,然后遍历电子邮件和附件。
我已经查看了Microsoft documentation,但是找不到我需要的东西。
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)
email_count = inbox.Items.count
messages = inbox.Items
for message in messages:
emailSendDate = message.senton.date()
attachments = message.attachments
emailSubject = message.Subject
for attachment in attachments:
attachment_name = attachment.filename
#a way to test if email attachment is encrypted?
解决方法
Outlook对特定的附件类型一无所知-它不知道也不在乎。在使用Attachment.SaveAsFile
保存附件之后,您将需要使用Excel对象模型来尝试找出这一点。从https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.passwordencryptionfileproperties
我采用了保存附件的方法,但是如果我可以检索附件的临时文件路径而不需要保存它,那就更好了。我尝试使用GetTemporaryFilePath()方法,但是该方法的规则使其不适用于我。现在,我使用xlrd测试它是否可以打开工作簿。
attachment.SaveAsFile(os.path.join(testfilepath,attachment.filename))
try:
wb = xlrd.open_workbook(os.path.join(testfilepath,attachment.filename))
attachmentEncryption = 'N'
except:
attachmentEncryption = 'Y'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。