【问题标题】:Save Email as .MSG to Local Folder using Powershell使用 Powershell 将电子邮件另存为 .MSG 到本地文件夹
【发布时间】:2016-08-09 23:01:25
【问题描述】:

我创建了一个规则,将电子邮件从收件箱移动到子文件夹“任务”。我可以将所有电子邮件从子文件夹“任务”移动到 Outlook 中的另一个子文件夹“完成”,但任何人都可以帮助我将电子邮件复制为.msg 文件本地到预定义的文件夹。下面是 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)


}

【问题讨论】:

标签: powershell


【解决方案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)
}

【讨论】:

  • 感谢 Hitesh 提供的替代解决方案。但我想保存带有主题行的电子邮件。我们怎样才能做到这一点。是不是像下面提到的那样
  • $filename = $psitem.TaskSubject $psitem.HTMLBody | Set-Content C:\Users\vijay.jadpalsukumar\Documents\Test\$filename.htm
  • 此修改会将带有主题的电子邮件保存为文件名ForEach-Object -Process { $filename = $psitem.Subject $psitem.HTMLBody | Set-Content "C:\test\$filename.htm" $psitem.Move($TargetFolder) }
  • 嗨 Hitesh,它保存为“文件”,文件大小为 0KB,而不是 HTML 文件。请您进一步检查并提供帮助。
  • @Vijay,请确认您的 Tasks 文件夹中有可用的电子邮件,并且电子邮件正文中有一些内容。
猜你喜欢
  • 1970-01-01
  • 2018-07-10
  • 2019-04-24
  • 1970-01-01
  • 2017-05-04
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多