python 实现outlook 中邮件保存

通过python 来实现outlook中邮件的保存。

import win32com.client
import os, sys, shutil
OlSaveAsType= {
"olTXT": 0,
"olRTF": 1,
"olTemplate": 2,
"olMSG": 3,
"olDoc": 4,
"olHTML": 5,
"olVCard": 6,
"olVCal": 7,
"olICal": 8
}
class ReadMail(object):
    def __init__(self):
        # 创建与outlook的链接
        self.outlook= win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
# 获取outlook的登陆权限
        self.accounts= win32com.client.Dispatch("Outlook.Application").Session.Accounts
self.folders= self.get_folder_name()
#获取邮箱中所有文件的名字
    def get_folder_name(self):
        for accountin self.accounts:
            # 获取邮箱里所有文件的名字
            global inbox
inbox= self.outlook.Folders(account.DeliveryStore.DisplayName)
print(account.DisplayName)
self.folders= inbox.Folders
return self.folders
def run(self):
        for folderin self.folders:
            if folder.name== '你要保存的邮件所在的分组名称':
                  self.save_report(folder)
        else:
                pass
    #TODO 将最后一封邮件保存到本地
    def save_report(self,folder):
        # 将之前留下的文件全部清除掉
        shutil.rmtree(r'\path\to\you\save\', ignore_errors=True)
        # 获取最新的邮件
        report= folder.Items.GetLast()
        # 将最新的邮件储存到目标目录
        os.chdir(r"\path\to\you\save\")
        report.SaveAs(report.subject+ ".html", OlSaveAsType['olHTML'])
        print(report.subject)
if __name__== '__main__':
    savereport= ReadMail()
    savereport.run()

推荐阅读更多精彩内容

  • 大家好,我是太空铁。 OUTLOOK是老铁日常使用的邮件客户端,平时收发邮件也比较多。如果所有邮件都混杂在一个邮件...
    太空之翼阅读 3,513评论 0 16
  • 从古代的八百里加急,到现在的电子邮件,邮件的发展见证了上下五千年的发展史,这些当然是废话,只是要说说邮件的重要性。...
    大牧莫邪阅读 1,242评论 0 12
  • 今天中午放学回来一进门,奶奶就做好饭了。雪儿吃完饭后要看我手机,我没好气地说:“不能看,快考试了,哪还...
    林凡_3057阅读 132评论 0 0
  • 原本就约好的周末和大学同学小聚,太不容易了,虽然天天都在小群里叨叨,可最近一个见面的同学都是在两年前了。 ...
    安安2230阅读 84评论 0 1
  • 黑色的云仿佛要压下来了。此刻的天空是极其阴沉的。 他坐在拥挤的公交车里,脑袋靠在窗上,侧目观察着外面。 车,路上全...
    CKouder阅读 312评论 0 1
  • “清泉,你要记住谁是我们的仇人,也要记住谁是我们的恩人。” “娘,我知道魔尊是我...
    S雪S雪阅读 254评论 4 2