我找到了使用win32com for outlook库与python检查任何给定电子邮件的以下属性的方法。
#imports:
import time
from time import strftime
import pandas as pd, win32com.client as client
from win32.com.client import Dispatch
#importing the excel file that contains email addresses and corresponding flags:
df_excel = pd.read_excel(r'\user...addresses.xlsx')
#adding both columns as lists:
df_excel_mail = df_excel['mail'].tolist();df_excel_flag = df_excel['flag'].tolist()
outlook = client.Dispatch('Outlook.Application').GetNamespace('MAPI')
main_account = outlook.Folders.Item(1)
folder_inbox = main_account.Folders['Inbox'].Folders['Test']
folder_inbox_WIP = main_account.Folders['Inbox'].Folders['Test'].Folders['WIP']
while True:
time.sleep(0)
messages = folder_inbox.Items.Count
if messages > 0:
for i in reversed(range(0,messages)):
message = folder_inbox.Item[i]
for y, z, in zip(df_excel_mail,df_excel_flag)
if message.Categories == '' and y == message.SenderEmailAddress and z != 'nan'
message.Categories = z
message.Save
message.Move(folder_inbox_WIP)
messages_v2 = folder_inbox_WIP.Items.Count
if folder_inbox_WIP .Items.Count > 0:
for ii in reversed (range(0,messages_v2)):
message_v2 = folder_inbox_WIP[ii]
message_v2.Move(folder_inbox)
if strftime('%H, %M, %N') >= strftime('18:00:00')
break
我想访问任何给定的电子邮件:
接收器列表(如果我有多个,该如何工作(?
cc列表("(
除了将此电子邮件从一个文件夹移动到另一个文件夹之外,还有其他方法可以更新电子邮件上的类别吗?我正在处理一个批处理过程,这种移入/移出会减慢速度。
当电子邮件从电子邮件地址"发送时;代表";的另一个电子邮件地址如何代表我访问该电子邮件?
- 使用
MailItem.Recipients
集合 - 参见#1,检查每个收件人的
Recipient.Type
属性是否等于olCC
(=2( - 当然-设置
MailItem.Categpries
属性。别忘了打电话给MailItem.Save
- 使用
MailItem.SenderEmailAddress
。对于代表发送的地址,请读取PR_SENT_REPRESENTING_EMAIL_ADDRESS
MAPI属性。使用MailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0065001F")
访问
通常,使用OutlookSpy(我是它的作者(查看各种Outlook对象,以熟悉Outlook对象模型。
还要记住,要访问收件箱文件夹的子文件夹,最好使用类似的东西
out_iter_folder = outlook.GetDefaultFolder(6).Folders['TEST']
其中6是CCD_ 9常数。