python win32com保存存档的Outlook电子邮件

时间:2018-06-05 08:33:23

标签: python outlook win32com

这是我运行的代码

import win32com.client import re

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

for account in outlook.Folders:
    if (account.Name == "account@domain.com"):
        my_account = account
        break

for f in my_account.Folders:
    if f.Name == "Inbox":
        read_folder = f
        break

all_emails = read_folder.Items
email = all_emails[0]
email.SaveAs("C:/tmp/email.msg")

如果邮件有this icon,则最后一行会引发错误 我认为这个图标意味着它已经存档了?这是我得到的错误:

Traceback (most recent call last):
  File "C:\anaconda3\envs\test\lib\site-packages\IPython\core\interactiveshell.py", line 2963, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-26-bd0a4750f7e3>", line 1, in <module>
    email.SaveAs("C:/tmp/email2.msg")
  File "<COMObject <unknown>>", line 3, in SaveAs
pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)

2 个答案:

答案 0 :(得分:0)

mail.SaveAs(Path=r'C:\Users\Admin\Documents\Python\Example\msg_name.msg')

答案 1 :(得分:0)

有时,在运行脚本时,由于未打开Outlook而导致操作中止消息。在创建Outlook对象之前,请尝试放置以下代码。

import subprocess
subprocess.Popen(['C:\Path\To\OUTLOOK.EXE'])