【问题标题】:Is it possible to record the open emails in Outlook 2010 with PowerShell so that they can be opened again later?是否可以使用 PowerShell 记录 Outlook 2010 中打开的电子邮件,以便以后再次打开它们?
【发布时间】:2011-08-02 03:48:57
【问题描述】:

这个问题与https://stackoverflow.com/questions/6839516/outlook-2010-reopen-messages 非常相似,后者因不是问题而被关闭。

我有一个坏习惯,那就是在 Outlook 2010 中打开电子邮件,以提醒我白天需要做什么,因为我经常被打断。我想做的是使用 PowerShell 来获取打开的电子邮件列表,这样如果我需要关闭 Outlook,我就知道我之前在做什么。

我不担心 Outlook 崩溃,Outlook 通常会自动重新打开我一直在处理的所有电子邮件;我正在处理的用例是当我必须手动关闭 Outlook 以获取补丁或解决其他问题时。

我想做的是查询正在运行的 Outlook 进程并查看打开了哪些邮件;通过 COM 打开一个新的 Outlook 进程将不起作用,因为它会有不同的打开邮件列表。

有人知道在 PowerShell 中执行此操作的方法吗?如果需要,我可以使用另一种语言,但一直在尝试在可能的情况下在 PowerShell 上进行标准化,以便这里的其他人可以重用我编写的任何代码。

我考虑过的一种可能性是通过 PowerShell 启动 Outlook,以便我可以与正在运行的进程进行交互。

【问题讨论】:

    标签: powershell outlook


    【解决方案1】:

    首先,您需要获取对正在运行的 Outlook 实例的引用。

    $outlook = [System.Runtime.InteropServices.Marshal]::GetActiveObject('Outlook.Application')
    

    然后使用应用程序对象

    • 遍历outlook.Inspectors 集合
    • 向每个人Inspector 询问其CurrentItem
    • 存储您需要的此项目的任何属性(日期?主题?条目 ID?)

    【讨论】:

    • 感谢您的回复;我用 Outlook 试过这个,但没有用。然而,这给了我一个前进的方向,在挖掘了一下之后,Outlook 似乎没有在运行时对象表 (ROT) 中注册。一旦我弄清楚如何将其标记为正确答案,因为它适用于在 ROT 注册的应用程序。
    • 你学错了,我猜你被一些关于这个主题的阴暗谷歌点击误导了。 Outlook 用 ROT 注册就好了,这种方法在 win32 应用程序中很常见,我只是在 powershell 命令行中仔细检查了一遍。如果它不起作用,请提供更多信息。例如,您是否在 32 位 Outlook 上使用 64 位 powershell?
    猜你喜欢
    • 2011-11-20
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多