首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用具有运行时用户帐户的PowerShell读取Outlook邮箱

如何使用具有运行时用户帐户的PowerShell读取Outlook邮箱
EN

Stack Overflow用户
提问于 2019-08-02 11:52:23
回答 2查看 3K关注 0票数 0

我想使用PowerShell读取Outlook邮箱。我可以使用MAPI API调用访问Outlook邮箱,但只能连接到计算机上现有/预配置的Outlook /profile。我的要求是,我需要在运行时连接到Outlook邮箱。

我使用的是PowerShell版本5。

导入程序集文件

代码语言:javascript
复制
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application

映射命名空间

代码语言:javascript
复制
$namespace = $Outlook.GetNameSpace("MAPI")

访问收件箱

代码语言:javascript
复制
$OutlookInbox = $Outlook.Session.GetDefaultFolder(6)
$OutlookFolders = ($Outlook.Session.Folders.Item(1).Folders.Item(2)).FullFolderPath
EN

回答 2

Stack Overflow用户

发布于 2019-08-02 13:34:44

首先,这不是MAPI:您只需将字符串"MAPI“传递给Application.GetNamespace调用--这是Outlook。它只允许您访问预配置的本地配置文件中的邮箱。如果存在多个本地配置文件,并且Outlook未运行,则可以将配置文件的名称(如控制面板的“邮件显示概要文件”中所示)传递给Namespace.Logon。如果Outlook已经在运行,Namespace.Logon什么也不会做。如果配置文件中的主邮箱有权访问同一Exchange中的其他邮箱,则可以使用Namespace.CreateRecipient / Namespace.GetSharedDefaultFolder访问其他邮箱的默认文件夹。

如果您希望在没有现有Outlook配置文件的情况下真正动态访问任意邮箱,可以:

  1. 使用EWS库-它可以从PS访问:请参阅101/2018/06/19/about-using-ews-and-powershell/
  2. 可以使用Extended创建和配置临时配置文件(请参阅https://blogs.msdn.microsoft.com/dvespa/2015/10/28/how-to-configure-an-outlook-2016-profile-using-mfcmapi/),但扩展的MAPI只能从C++或Delphi访问。
  3. 您可以使用赎罪 (我是它的作者)-它公开了RDOSession.LogonHostedExchangeMailbox方法(RDOSession对象大致对应于Outlook中的名称空间对象)。LogonHostedExchangeMailbox创建(然后删除)指向指定邮箱的临时配置文件。
票数 1
EN

Stack Overflow用户

发布于 2019-08-02 13:36:22

目前,您正在处理的是Outlook对象模型,而不是MAPI。

Outlook是单例,不能同时在系统上运行两个实例。因此,当您创建一个新的Application实例时,您将被链接到已经运行的实例。请注意,您需要在相同的安全上下文中运行两个应用程序。

注意,Microsoft目前不建议也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)的Microsoft应用程序的自动化,因为在此环境中运行Office时,Office可能会出现不稳定的行为和/或死锁。

如果您正在构建在服务器端上下文中运行的解决方案,则应尝试使用已为无人值守执行而安全的组件。或者,您应该尝试找到允许至少部分代码运行客户端的替代方案。如果您使用来自服务器端解决方案的Office应用程序,则该应用程序将缺乏许多成功运行所需的功能。此外,您将承担风险与您的整体解决方案的稳定性。在办公服务器端自动化的几点思考文章中阅读更多有关这方面的内容。

作为解决办法,您可以考虑使用Open,如果您只处理Exchange,请参阅开始在Exchange中使用web服务获取更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57325981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档