python自动发邮件 outlook 取消提醒_在发送消息之前使用python检测outlook自动应答器...

您必须使用Outlook's automation interface,或者执行与Outlook相同的操作(可能通过MAPI或AD),或使用其他API执行等效操作。

您可以使用win32com作为三者中的第一个。

当您将收件人添加到Outlook中的“收件人”列表时,它会获得一个Recipient对象,该对象具有AutoResponse属性,Outlook将向您显示该属性。

通过OOM获取Recipient对象的最简单(如果可能不是最干净的)方法是做同样的事情:创建虚拟消息,添加收件人,然后查看其属性。项目具有Recipients个对象,这些对象具有Add方法,该方法采用标识符并返回Recipient(当然,将其添加到项目的收件人)。

所以,代码看起来应该是这样的(未经测试,因为我没有在这里连接到Exchange的Windows / Outlook框):

session = win32com.client.Dispatch("Mapi.Session")

session.Logon(MY_PROFILE)

outlook = win32com.client.Dispatch("Outlook.Application")

message = outlook.CreateItem(0) # olMailItem

autoresponses = {}

for name in names:

recipient = message.Recipients.Add(name)

autoresponses[name] = recipient.AutoResponse

你当然可以将它组合成单行词典理解,但我认为这可能更清楚。此外,您可能希望丢弃该邮件,以便Outlook最终不会将剩余垃圾粘贴在草稿或其他内容中,并且您可能需要一些错误处理,并且您可能需要为每个收件人使用单独的邮件以使其更容易从错误中恢复并继续前进......等等......但是,这与MSDN和win32com文档一起应该足以让你前进。

当然,这仅在name解析为服务器邮箱时有效;如果您提供仅限本地的名称或地址,或仅提供外部地址,您只需提供本地地址簿条目或裸电子邮件条目,两者都没有AutoResponse。但这与Outlook完全相同,所以可能是预期的。

另请注意,第一次脚本执行任何尝试访问通讯簿的操作时,除非用户故意关闭默认安全功能,否则会弹出“程序正在尝试访问电子邮件地址”你已经存储在Outlook中。你想允许这个吗?“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值