问题:在保存附件时要么返回91错误,要么无法保存。
解决方法:一种可能的解决方法是使用错误处理机制来处理保存附件的异常。下面是一个示例代码,使用了try-except语句来捕获异常并处理错误情况。
import win32com.client
def save_attachment(mail_item, save_folder):
attachments = mail_item.Attachments
try:
for attachment in attachments:
attachment.SaveAsFile(save_folder + '\\' + attachment.FileName)
print("Attachments saved successfully.")
except Exception as e:
print("Error occurred while saving attachments: " + str(e))
# 使用Outlook COM对象来获取邮件并保存附件
outlook_app = win32com.client.Dispatch("Outlook.Application")
namespace = outlook_app.GetNamespace("MAPI")
inbox = namespace.GetDefaultFolder(6) # 获取收件箱文件夹
messages = inbox.Items
for message in messages:
if message.Class == 43: # 只处理邮件类别为olMail的邮件
save_attachment(message, "C:\\Attachments")
在上面的代码中,我们定义了一个save_attachment
函数,它接受一个MailItem
对象和一个保存附件的文件夹路径作为参数。在函数中,我们首先获取附件集合,然后使用SaveAsFile
方法将每个附件保存到指定的文件夹中。
在try块中,我们尝试保存附件,并在成功保存时打印一条成功消息。如果发生任何异常,将会被捕获并作为错误消息打印出来。
最后,我们使用Outlook COM对象来获取收件箱中的邮件,并对每封邮件调用save_attachment
函数进行附件保存。请注意,这里只处理邮件类别为olMail
的邮件,可以根据实际需求进行修改。
希望这个示例代码对你有帮助!请根据你的实际情况进行适当的修改和调整。