我正在尝试将Outlook收件箱中所有电子邮件的发件人/主题信息写入csv文件,然后使用Powershell将电子邮件移动到收件箱的子文件夹(称为" After")。使用电子邮件信息正确创建CSV文件,但只有前半部分+ 1封电子邮件实际上已移动到子文件夹。这是我的代码:
$olFolderInbox = 6;
$outlook = new-object -com outlook.application;
$mapi = $outlook.GetNameSpace("MAPI");
$inbox = $mapi.GetDefaultFolder($olFolderInbox);
$inbox.items|Select SenderEmailAddress,subject|Export-Csv C:\Scripts\Testing.csv -NoTypeInformation;
ForEach ($Item in $inbox.items){
try{
$Item.Move($inbox.Folders.Item("After")) | out-null;
}catch{
Write-Host "Failed to move item", $Item.Id.UniqueId;
}
}
这是我第一次使用Powershell,所以非常感谢任何帮助!
答案 0 :(得分:0)
Move()更改集合。使用向下“for”循环(从items.Count减少到1)而不是“foreach”。