Powershell Interop.Outlook发送和接收特定邮箱并等待异步完成

时间:2019-07-14 11:12:16

标签: powershell outlook powershell-5.0

This SO answer介绍了如何使用$mapi.SendAndReceive()

在Powershell中刷新Microsoft Outlook邮箱

我想扩展以下问题:

  • 如何使用Powershell刷新Outlook中的特定邮箱?例如,如果有5个邮箱,而我只想刷新一个。
  • 如何让Powershell等待SendAndReceive()完成?根据{{​​3}},这是一种异步方法。

可接受的解决方案必须在Powershell脚本中。

1 个答案:

答案 0 :(得分:1)

  

如何让Powershell等待SendAndReceive()完成

在Microsoft Outlook使用指定的发送/接收组完成用户文件夹的同步之后,将立即触发text类的SyncEnd事件。

TextInputs
  

如何在Outlook中刷新特定的邮箱?

通过SyncObject组,用户可以配置不同的同步方案,选择要应用的文件夹和过滤器。

使用Dim WithEvents mySync As Outlook.SyncObject Sub Initialize_handler() Set mySync = Application.Session.SyncObjects.Item(1) mySync.Start End Sub Private Sub mySync_SyncEnd() MsgBox "Synchronization is complete." End Sub 方法从SyncObjects对象中检索Send\Receive对象。由于Item属性是SyncObject对象的默认属性,因此您可以按名称标识组。

Name对象是只读的;您不能更改其属性或创建新属性。但是,请注意,您可以使用SyncObject属性添加一个SyncObject组,这将创建一个名为Send/Receive的{​​{1}}组。

SyncObjects.AppFolders类的Start方法开始使用指定的Send \ Receive组同步用户的文件夹。

Send/Receive