使用PowerShell访问EWS上的Inbox和SentItems文件夹

时间:2017-06-06 14:49:16

标签: powershell exchangewebservices

我通过PowerShell代码与一些EWS挣扎。我似乎无法同时访问“已发送邮件”和“收件箱”文件夹。

这是我的代码:

$ewsPath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
Add-Type -Path $ewsPath
$ews = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService -ArgumentList "Exchange2013"
$ews.Credentials = New-Object Net.NetworkCredential('emailbox', 'password')
$ews.AutodiscoverUrl("emailbox@domain.com")
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($ews,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
$sentbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($ews,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::SentItems)
$iv = New-object Microsoft.Exchange.WebServices.Data.ItemView -ArgumentList 10000                                         
$pvSet = New-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)                                               
$sentItems = $sentbox.FindItems($iv)

当我想在sentbox变量中获取已发送邮件文件夹时,我收到以下错误:

  

调用" Bind"用" 2"参数:"请求   失败。远程服务器返回错误:(501)未实现。

但如果我在$ inbox和$ sentbox初始化之间有以下行,那么它可以工作,但$ sentbox上的findItems会失败。

$ews.AutodiscoverUrl("emailbox@domain.com")

1 个答案:

答案 0 :(得分:0)

这是关于防火墙的问题。 代码有效。