离线读取:
import win32com.client
import os
dir = r"C:Users30367Desktop1"
file_list = os.listdir(dir)
for file in file_list:
if file.endswith(".msg"):
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(dir + "/" + file)
print(msg.Body)
从邮箱读取:
def read_outlook_mailbox():
"""连接Outlook邮箱,读取收件箱内的邮件内容"""
# 使用MAPI协议连接Outlook
account = Dispatch('Outlook.Application').GetNamespace('MAPI')
# 获取收件箱所在位置
inbox = account.GetDefaultFolder(6) # 数字6代表收件箱
# 获取收件箱下的所有邮件
mails = inbox.Items
mails.Sort('[ReceivedTime]', True) # 邮件按时间排序
# 读取收件箱内前3封邮件的所有信息(下标从1开始)
for index in range(1, 4):
print('正在读取第[{}]封邮件...'.format(index))
mail = mails.Item(index)
alltext = mail.Body
#print(alltext)
print(type(alltext))
#print('邮件正文内容:{}'.format(mail.Body))
pattern=re.compile('POL(.+)r') #匹配ab与ef之间的内容
POL=pattern.findall(alltext)
POL = str(POL).replace(":","").replace("[","").replace("]","").replace("'","")
print(POL)
参考:Python连接Outlook读取邮件和发送邮件



