在 PowerShell 中创建新的 Outlook 365 电子邮件

Create New Outlook 365 Email in PowerShell

我正在尝试在 PowerShell 中创建 Outlook 电子邮件,我发现到处都是相同的代码:

$ol = New-Object -comObject Outlook.Application

$mail = $ol.CreateItem(0)
$mail.Subject = "<Subject>"
$mail.Body = "<Body>"

然后

$inspector = $mail.GetInspector
$inspector.Display()

或者

$mail.Display()

显示电子邮件。

然而,在第一行我得到这个错误:

New-Object : Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

我在没有 -comObject 的情况下尝试过,但得到了一个不同的错误:

New-Object : Cannot find type [Outlook.Application]: verify that the assembly containing this type is loaded.

我试过用

加载程序集
[Reflection.Assembly]::LoadWithPartialname("Microsoft.Office.Interop.Outlook") | out-null

但在 运行 之前的命令中仍然会收到相同的错误消息。

以防万一,我们使用的是 Office 365,但我确实安装了 Office 的本地副本。 Office 365 是否需要使用其他类型的对象?

此外,它似乎正在尝试联系服务器以创建对象。有没有办法让我强制它在本地这样做?

CO_E_SERVER_EXEC_FAILURE 表示 Outlook 运行 处于与您的应用程序不同的安全上下文中。 COM 系统拒绝在不同安全上下文中编组进程 运行 之间的调用。