我正在尝试使用Python和outlook发送邮件,但在mail. send()结束时出现错误 &g


OlaApp = win32.Dispatch('Outlook.Application')
olNS = olApp.GetNameSpace('MAPI')
mail  = ol.App.CreateItem(0)
mail.To = ''
mail.Subject = ''
mail.Body = ''
mail.Attachements.Add(max_file)
# here is max_file is latest file from the folder
mail.Display() -- able to see mail
mail.Send() 

我可以看到电子邮件,但是发送电子邮件时出现以下错误:-

com_error :(-2147467260,'Operation aborted',None,None)

看来你在Outlook中遇到了一个安全问题…

当您尝试从外部应用程序自动执行Outlook时,Send方法可能会触发异常。如果您试图访问任何受保护的属性或方法,它也可以是Outlook发出的提示。但你的情况是个例外。您会得到安全提示/异常,因为Outlook是通过以下方式之一在客户端计算机上配置的:

  • 使用默认的Outlook安全设置(即没有设置组策略)
  • 使用组策略定义的安全设置,但没有应用编程式访问策略
  • 使用组策略定义的安全设置,设置为在防病毒软件不活动或过期时发出警告

您可以创建一个组策略,以防止在系统上安装任何最新的防病毒软件时显示安全提示,或者只是关闭这些警告(实际上不建议这样做)。

请参阅Outlook对象模型的安全行为文章。

你也可以考虑使用一种低级代码来构建Outlook,它不会产生安全问题——扩展的MAPI。考虑使用任何第三方包装器来包装API,比如Redemption。

另一个选项是Outlook安全管理器,它允许在运行时动态地抑制Outlook安全问题。

不要无模型地显示消息(display)并在消息仍在显示时调用Send。不是一个就是另一个。

相关内容

  • 没有找到相关文章

最新更新