c# - 从 SQL Server 中使用 xp_cmdshell 调用 Outlook COM 库

标签 c# sql-server outlook

首先,如果这个问题看起来很业余或者过去已经回答过,请原谅我——我对一般的编程还很陌生,并试图寻找答案。

我正在尝试编写一个可执行文件来访问 Outlook 邮箱、提取未读电子邮件并将其详细信息插入数据库以供我们记录。

我已经编写了一个可以正常运行的概念验证应用程序,但是当我尝试通过 Sql server 中的存储过程调用它时,我遇到了错误消息:

未处理的异常:System.UnauthorizedAccessException:检索 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。 (HRESULT 异常:0x80070005 (E_

我想我一路上遇到了安全问题,但也许由于我的经验不足,这根本不可能通过 Microsoft 安全设置实现?

到目前为止我已经尝试过:

-使用regsvr32注册.dll -更改.dll 的权限 -设置一个与我用来访问托管服务器的VM的登录名相同的Sql服务器代理帐户 -尝试使用晚期和早期绑定(bind)方法运行它

任何建议将不胜感激,因为我很困惑!

提前谢谢你们。

最佳答案

仅仅因为某些事情可以完成,并不意味着它应该:) 通过 xp_cmdshell 从 SQL Server 转到 Outlook 有很多失败的可能性,我什至不会考虑它。你可能让它在一台机器上运行,然后发现你无法让它在另一台机器上运行。

执行此操作的简单方法是创建一个小型 .Net 应用程序;查询 Outlook + 写入数据库。如果您希望它持续工作,请使用调度程序或创建 Windows 服务以每 n 分钟执行一次任务。

关于c# - 从 SQL Server 中使用 xp_cmdshell 调用 Outlook COM 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341165/

相关文章:

sql-server - 发送 SQL Server 代理作业失败的摘要

sql - 您最喜欢的调试 MS SQL 存储过程的方法是什么?

sql - T-SQL 修剪 &nbsp(和其他非字母数字字符)

outlook - Outlook 支持哪些协议(protocol)进行双向日历同步?

c# - 使用 NetTopologySuite TransformGeometry 时出错

C# Xml - 名称字符无效;名称中不能包含 ' ' 字符

c# - 使用复选框 C# 添加具有不同颜色的列表框项目

c# - 如何将数据表记录转换为自定义类?

Outlook 插件 : Working with threads

vba - 我如何知道规则何时完成处理?