Office Automation-创建msg文件

问题描述 投票:1回答:1

我正在尝试使用Python创建Outlook邮件文件(.msg)文件,特别是从Flask中创建。

这是我所拥有的:

import win32com.client
def html2msg():
    com_object = win32com.client.Dispatch('Outlook.Application')
    com_file = com_object.CreateItem(0)
    com_file.Subject = 'Subject'
    com_file.HTMLBody = '<html><head></head><body><p>Test Email</p></body></html>'
    com_file.SaveAs('new.msg')
    com_file.Close(0)

[当在Windows中以用户身份运行时,或者在以用户身份手动运行flask应用程序时从烧瓶中发出警告,此方法都很好...

问题出现在IISwfastcgi后面时:我收到此非特定错误:

File "<COMObject Outlook.Application>", line 2, in CreateItem
pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)

我以前在Word中遇到类似的问题,这是由于com对象在系统配置文件下运行,而通过按以下方法创建文件夹来解决:https://theether.net/kb/100120?id=100120

有人能做到类似的事情吗?

python flask winapi outlook com
1个回答
0
投票

当问题在带有wfastcgi的IIS后面运行时,出现此问题:我收到此非特定错误:

Considerations for server-side Automation of Office文章针对您遇到的错误指出以下内容:

Microsoft当前不建议,并且不支持从任何无人参与的非交互客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT Services)自动化Microsoft Office应用程序,因为Office可能表现出不稳定的行为和/或在此环境中运行Office时出现死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已确保安全进行无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果您从服务器端解决方案中使用Office应用程序,则该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。

作为解决方法,您需要使用Outlook基于的低级API-扩展MAPI或围绕该API的任何包装,例如Redemption。

如果仅处理Exchange服务器配置文件,请考虑使用EWS,有关详细信息,请参阅Start using web services in Exchange

© www.soinside.com 2019 - 2024. All rights reserved.