使用库win32com推出outlook电子邮件功能



我找到了使用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

我想访问任何给定的电子邮件:

  1. 接收器列表(如果我有多个,该如何工作(?

  2. cc列表("(

  3. 除了将此电子邮件从一个文件夹移动到另一个文件夹之外,还有其他方法可以更新电子邮件上的类别吗?我正在处理一个批处理过程,这种移入/移出会减慢速度。

  4. 当电子邮件从电子邮件地址"发送时;代表";的另一个电子邮件地址如何代表我访问该电子邮件?

  1. 使用MailItem.Recipients集合
  2. 参见#1,检查每个收件人的Recipient.Type属性是否等于olCC(=2(
  3. 当然-设置MailItem.Categpries属性。别忘了打电话给MailItem.Save
  4. 使用MailItem.SenderEmailAddress。对于代表发送的地址,请读取PR_SENT_REPRESENTING_EMAIL_ADDRESSMAPI属性。使用MailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0065001F")访问

通常,使用OutlookSpy(我是它的作者(查看各种Outlook对象,以熟悉Outlook对象模型。

还要记住,要访问收件箱文件夹的子文件夹,最好使用类似的东西

out_iter_folder = outlook.GetDefaultFolder(6).Folders['TEST']

其中6是CCD_ 9常数。

最新更新