2016-12-27 81 views
0

我一直在尝试阅读具有特定主题的收件箱中的Outlook邮件,并下载与该特定主题相关的附件。 这是我已经使用用于阅读outlook邮件的Powershell

$filepath = “C:\folder” 
$filter="[Subject]=Test Powershell" 
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null 
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
$outlook = new-object -comobject outlook.application 
$namespace = $outlook.GetNameSpace("MAPI") 
$namespace.Logon("profilename","mypassword",$false,$false) 
$folder = $namespace.getDefaultFolder($olFolders::olFolderInBox) 
#$folder.items|select * 
$folder.items.Restrict($filter)| 
    select -Expand Attachments | % { 
    for ($i = $_.Count; $i; $i--) { 
     $_.Item($i).SaveAsFile("$filepath\$($_.Item($i).FileName)") 
    } 
    } 

然而前景MAPI对象的创建之后,我被提示与所述简档的密码被手动设置,即使我已经添加$namespace.Logon与轮廓密码作为paramater所述的powershell脚本。我希望无需密码提示即可通过脚本发送配置文件的密码。 请指出必须做的改变。

+0

根据[The Documentation](https://msdn.microsoft.com/en-us/library/office/ff861594.aspx)Logon()方法的密码字段已弃用,并且不适用于一个现代系统配置。看起来如果你使用的是默认的配置文件''Logon()''方法可以被删除,但你可能想多做一些阅读以确保这种方法适用于你的特定用例。 –

回答

0

Namespace.Logon不接受您的Exchange邮箱的密码。它可能适用于密码保护的PST文件,但不适用于Exchange邮箱。至少登录一次,并确保选中“记住密码”复选框,以确保不再提示。

+0

感谢您的回应。我能够做到。 –