我通过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")
答案 0 :(得分:0)
这是关于防火墙的问题。 代码有效。