【发布时间】:2022-12-12 01:54:56
【问题描述】:
我正在尝试使用 python 获取 outlook 电子邮件附件中的一些数据,然后在 python 中使用该数据。我已经设法编写了代码,该代码将进入我想要的 outlook 收件箱和文件夹,然后获取特定邮件的附件,但是我不确定如何查看该附件的内容。我发现的许多其他问题和教程似乎与将附件保存在文件夹位置更相关,而不是在 python 本身中查看附件。
对于上下文,我试图获取的数据是来自 adobe analytics 的导出报告,该报告是一个 csv 文件,作为 zip 文件附加到电子邮件。 CSV 文件显示了特定时间段的一些数据,我计划安排此报告每周运行一次,所以我想做的是让 python 浏览包含此报告的所有电子邮件,然后将所有这些数据堆叠到一个数据框中这样我就可以将所有历史记录加上最近一周的数据放在一个地方,然后导出这个文件。
请在下面找到我到目前为止编写的代码。如果您需要更多详细信息,或者我没有很好地解释任何内容,请告诉我。我是 python 的新手,尤其是 win32com 库,所以我可能遗漏了一些明显的东西。
#STEP 1---------------------------------------------
#import all methods needed
from pathlib import Path
import win32com.client
import requests
import time
import datetime
import os
import zipfile
from zipfile import ZipFile
import pandas as pd
#STEP 2 --------------------------------------------
#connect to outlook
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
#STEP 3 --------------------------------------------
#connect to inbox
inbox = outlook.GetDefaultFolder(6)
#STEP 4 --------------------------------------------
#connect to adobe data reports folder within inbox
adobe_data_reports_folder = inbox.Folders['Cust Insights'].Folders['Adobe data reports']
#STEP 5 --------------------------------------------
#get all messages from adobe reports folder
messages_from_adr_folder = adobe_data_reports_folder.Items
#STEP 6 ---------------------------------------------
#get attachement for a specific message (this is just for testing in real world I'll do this for all messages)
for message in messages_from_adr_folder:
if message.SentOn.strftime("%d-%m-%y") == '07-12-22':
attachment = message.Attachments
else:
pass
#STEP 7 ----------------------------------------------
#get the content of the attachment
##????????????????????????????
【问题讨论】:
标签: python outlook email-attachments win32com