使用Powershell将.MSG保存为本地文件夹

时间:2016-08-09 14:32:35

标签: powershell

我创建了一个规则,可以将电子邮件从收件箱移动到子文件夹“任务”。我可以将所有电子邮件从子文件夹“任务”移动到Outlook中的另一个子文件夹“完成”但是任何人都可以帮助我复制电子邮件.msg文件本地到预定义的文件夹.Below是powershell代码。

$olFolderInbox = 6;
$GetOutlook = New-Object -com "Outlook.Application";
$olName = $GetOutlook.GetNamespace("MAPI")
$olxEmailFolder = $olName.GetDefaultFolder($olFolderInbox)

$SubFolders = $olxEmailFolder.Folders | ? { $_.Name -match 'Tasks' };
$TargetFolder = $olxEmailFolder.Folders.Item('Completed')

$SubFolders.Items |

ForEach-Object -Process {
$psitem.Move($TargetFolder)


}

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以将电子邮件保存为.msg,但是,您可以使用修改后的代码将其保存为.htm

$olFolderInbox = 6
Add-Type -assembly 'Microsoft.Office.Interop.Outlook'
$GetOutlook = New-Object -ComObject 'Outlook.Application'
$olName = $GetOutlook.GetNamespace('MAPI')
$olxEmailFolder = $olName.GetDefaultFolder($olFolderInbox)

$SubFolders = $olxEmailFolder.Folders | Where-Object -FilterScript {
  $_.Name -match 'Tasks' 
}
$TargetFolder = $olxEmailFolder.Folders.Item('Completed')

$SubFolders.Items |    
ForEach-Object -Process {
  $psitem.HTMLBody | Set-Content C:\test\email.htm
  $psitem.Move($TargetFolder)
}