WCF 服务在 Outlook 上发送电子邮件 | HRESULT 异常
Posted
技术标签:
【中文标题】WCF 服务在 Outlook 上发送电子邮件 | HRESULT 异常【英文标题】:WCF Service Send Email On Outlook | Exception from HRESULT 【发布时间】:2020-04-01 15:09:34 【问题描述】:我在 .NET 4.5 中创建了一个 WCF 项目,用于从 Outlook 2013 或 2016 发送电子邮件并将其托管在 windows server 2012 和 iis 8 上。
当在 windows 10 中从 Visual Studio 2019 运行服务时,一切都正常工作,但部署到:
Windows Server 2012 中的 IIS 8...发生以下错误:
System.UnauthorizedAccessException:检索 COM 类工厂 对于具有 CLSID 0006F03A-0000-0000-C000-000000000046 的组件失败 由于以下错误:80070005 访问被拒绝。 (例外来自 HRESULT:0x80070005(E_ACCESSDENIED))。在 服务方法
我也做了 DCOM Config,我从其他帖子中找到了解决方案,但我仍然遇到同样的问题。
我想在电子邮件中附加会议和提醒,为此我使用了 Outlook。(连接到 Exchange 的 Outlook) .如果有其他方法请说出来。
【问题讨论】:
"Current licensing guidelines prevent Office applications from being used on a server to service client requests, unless those clients themselves have licensed copies of Office. Using server-side Automation to provide Office functionality to unlicensed workstations is not covered by the End User License Agreement (EULA)" 另外,如果 IIS 和 Office 在同一台机器上,DCOM 配置将没有有用 【参考方案1】:任何 Office 应用程序(包括 Outlook)都不能通过 Windows 服务使用。扩展 MAPI(C++ 或 Outlook)可以,但这意味着配置文件需要先手动配置,或者您需要先以编程方式构建它。对于 C#,您可以使用 Redemption 中的 RDO 对象系列(它包装了扩展 MAPI 系统)。
如果您只是发送消息,为什么不直接使用 SMTP?如果您通过 Exchange Server 发送,为什么不使用 EWS(其中有 .Net wrapper)
【讨论】:
感谢您的反馈。我想在电子邮件中发送提醒和会议时间,SMTP 不支持会议时间。我可以使用 EWS 发送会议时间或提醒吗? 当然 SMTP 可以 - Outlook 可以通过 SMTP 发送约会邀请。您需要创建格式适当的文本/日历 MIME 消息。以上是关于WCF 服务在 Outlook 上发送电子邮件 | HRESULT 异常的主要内容,如果未能解决你的问题,请参考以下文章
Outlook exchange 一直提示邮件过满,无法发送,已经清空了垃圾箱,也把服务器上的邮件保存到本地,求解
使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证