【发布时间】:2020-10-13 15:10:14
【问题描述】:
我在 Outlook 中有 2 个帐户。我想从收件箱中下载来自第二个帐户(不是我的主帐户)的所有邮件。
我编写了一个代码,可以从我的主帐户下载所有收件箱邮件。此代码运行良好,并将所有邮件存储到本地文件夹 email_folder 代码如下:
from win32com.client import Dispatch
import os
import re
os.chdir("D:\\email_folder")
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(1)
messages = inbox.items
for message in messages:
message = messages.GetNext()
name = str(message.subject)
name = re.sub('[^A-Za-z0-9]+', '', name)+'.msg'
message.SaveAs(os.getcwd()+'//'+name)
但问题是,当我尝试从第二个帐户下载电子邮件时,它无法正常工作。我检查了辅助帐号是 3,收件箱 - 子文件夹是 13。
我已经用下面的函数找到了。
import win32com.client as win32
outlook = win32.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
root_folder = namespace.Folders.Item(3)
def menu(outlookFolderItem):
for i in range(0,20):
try:
print(i,outlookFolderItem.Folders(i).Name)
except:
pass
# example
menu(root_folder)
现在我想从收件箱中下载辅助帐户的电子邮件。我编写了以下代码,但它不起作用。代码如下:
from win32com.client import Dispatch
import os
import re
os.chdir("D:\\email_folder")
from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
sub_folder = outlook.Folders(3).Folders(13)
messages = sub_folder.items
for message in messages:
message = messages.GetNext()
name = str(message.subject)
message.SaveAs(os.getcwd()+'//'+name)
请帮助我。谢谢
【问题讨论】: