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

2024-09-23 22:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

Tags: noneapplicationismailmaxfiledispatchwin32
2条回答

不要在消息仍在显示时无模式显示消息(display)和call Send。这是一个或另一个

您似乎在Outlook中遇到了安全问题

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

  • 使用默认的Outlook安全设置(即未设置组策略)
  • 使用组策略定义的安全设置,但未应用编程访问策略
  • 使用组策略定义的安全设置,该组策略设置为在防病毒软件处于非活动状态或过期时发出警告

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

Security Behavior of the Outlook Object Model文章中阅读更多关于这方面的内容

您也可以考虑使用Outlook构建的低级代码,而不提供安全性问题——扩展MAPI。考虑在API周围使用任何第三方包装,如Redemption

另一个选项是Outlook Security Manager,它允许在运行时动态抑制Outlook安全问题

相关问题 更多 >