FindItems()在第一次运行中无效,但在第二次运行中有效

时间:2019-01-02 16:30:19

标签: powershell exchangewebservices

我正在尝试使用PowerShell从Outlook Exchange服务器邮箱中获取最新邮件。我已经看到最常见的解决方案是对收件箱对象执行FindItems()方法。但是,我发现第一次运行代码会引发错误提示

  

使用“ 1”作为参数调用“ FindItems”的异常:“请求失败。

当我再次运行它时,脚本成功完成了从我的邮箱返回最后一封邮件的操作。为了更加清楚,我编写了一个脚本来执行FindItems()方法,以在while循环中执行两次,如下所示:

# bind to the Inbox folder of the target mailbox
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($ews,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)

echo outsideWhile

$i = 0
while ($i -ne 2) {
    echo insideWhileBefore
    $inbox.FindItems(1)
    echo insideWhileAfter
    $i += 1
}

$inbox.FindItems(1)的第一次执行失败,但是第二次执行顺利返回期望的结果。

结果输出如下所示

outsideWhile
insideWhileBefore
Exception calling "FindItems" with "1" argument(s): "The request failed. The remote server returned an error: (501)" ........
insideWhileAfter
insideWhileBefore
<MAIL CONTENTS>
insideWhileAfter

请帮助我理解为什么会这样以及如何克服它。

0 个答案:

没有答案