Powershell...将电子邮件移动到存档文件夹.....移动除最后一封电子邮件外的所有电子邮件?
Powershell...Moving emails to archive folder.....moves all but last email?
我正在尝试将 Outlook 中的电子邮件从一个文件夹移动到另一个文件夹。
但是,我的代码在处理最后一封电子邮件时出错。
"Unable to index into an object of type System.__ComObject."
它将所有其他电子邮件移动到存档文件夹中。
如果只有 1 个电子邮件存在,它将出错....
如果存在 2 封或更多电子邮件,那么它将移动除最后一封电子邮件之外的所有电子邮件,然后出错。
密码是
$filepath="Z:\"
$olFolderInbox = 6
$i=0
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.Folders | ? { $_.Name -eq '#Whe ContractorRFPs' };
$trgtfldr = $inbox.Folders | ? { $_.Name -match 'Inbox' };
$mvdfldr = $inbox.Folders | ? { $_.Name -match 'Archived' };
$messages = $trgtfldr.items
for($i=($messages.count -1);$i -gt -1;$i--){
$($messages)[$i].move($mvdfldr)
}
为什么不使用 foreach 循环?
$messages = $trgtfldr.items
foreach($message in $messages){
$message.move($mvdfldr)
}
您可以像这样设置循环
$messages = $trgtfldr.items
$messageCount = $messages.count
for ($i = $messageCount - 1; $i -ge 0; $i--) {
$message = $messages.GetLast()
$message.move($mvdfldr)
}
我正在尝试将 Outlook 中的电子邮件从一个文件夹移动到另一个文件夹。
但是,我的代码在处理最后一封电子邮件时出错。
"Unable to index into an object of type System.__ComObject."
它将所有其他电子邮件移动到存档文件夹中。
如果只有 1 个电子邮件存在,它将出错.... 如果存在 2 封或更多电子邮件,那么它将移动除最后一封电子邮件之外的所有电子邮件,然后出错。
密码是
$filepath="Z:\"
$olFolderInbox = 6
$i=0
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.Folders | ? { $_.Name -eq '#Whe ContractorRFPs' };
$trgtfldr = $inbox.Folders | ? { $_.Name -match 'Inbox' };
$mvdfldr = $inbox.Folders | ? { $_.Name -match 'Archived' };
$messages = $trgtfldr.items
for($i=($messages.count -1);$i -gt -1;$i--){
$($messages)[$i].move($mvdfldr)
}
为什么不使用 foreach 循环?
$messages = $trgtfldr.items
foreach($message in $messages){
$message.move($mvdfldr)
}
您可以像这样设置循环
$messages = $trgtfldr.items
$messageCount = $messages.count
for ($i = $messageCount - 1; $i -ge 0; $i--) {
$message = $messages.GetLast()
$message.move($mvdfldr)
}