【问题标题】:Reading emails from outlook C# [closed]从 Outlook C# 阅读电子邮件 [关闭]
【发布时间】:2022-01-23 17:23:07
【问题描述】:

我的项目 (C#) 需要将 Outlook 收件箱中未读电子邮件中的所有电子邮件附件保存到服务器上的特定文件夹中,这些附件来自具有特定主题行的特定电子邮件 ID。

我不知道应该采用哪种方法。从我目前的搜索结果来看,人们正在使用“Microsoft Interop”,但大多数信息都说 Interops 很复杂,应该避免使用它。

任何人都可以通过任何示例代码帮助我吗? 我不是要求分步指南,但我们将非常感谢您提供任何帮助。

【问题讨论】:

标签: c# outlook com-automation


【解决方案1】:

大部分信息都说 Interops 很复杂,应该避免使用它

那不是真的。您可以轻松地从您的 C# 应用程序(当然不是服务)自动化 Outlook。请注意,Microsoft 当前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能会表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

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

您可以考虑使用EWSGraph API 从服务器访问电子邮件。

因此,要在 Outlook 中获取与您的条件相对应的电子邮件,您可以使用 Items 类的 Find/FindNextRestrict 方法。在以下文章中阅读有关它们的更多信息:

例如,您还可以使用以下搜索条件来获取所有带有附件的项目:

query = "@SQL=" & Chr(34) & "urn:schemas:httpmail:hasattachment" & Chr(34) & "=True"

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2017-09-05
    • 2018-07-08
    • 1970-01-01
    • 2013-02-23
    • 2021-12-26
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多