我正在尝试使用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
请帮助我理解为什么会这样以及如何克服它。