【发布时间】:2021-03-06 13:56:36
【问题描述】:
我编写了一个简单的脚本,旨在将收件箱、存档和发送的邮件备份到附加的 PST 数据文件中。
它似乎工作正常:脚本从我的电子邮件帐户中找到了源文件夹,它在附加的 PST 上找到了目标文件夹,它找到了要备份的邮件(即我已经深入检查了 $namespace 对象)。
当我重新打开 Outlook 客户端时,我遇到了一个令人不快的意外。正如预期的那样,我的邮件没有存储在我的电子邮件帐户中,但它们都没有出现在我附加的 PST 中。
发生了什么事???
编辑:或者,您能否向我建议有关 Powershell 的 Outlook MAPI 的任何文档?谷歌返回给我的结果很差
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNameSpace("MAPI")
$SourceDest = [ordered]@{}
$SourceDest['Inbox'] = 'PSTfolder1'
$SourceDest['Archive'] = 'PSTfolder2'
$SourceDest['Sent'] = 'PSTfolder3'
foreach ($from_folder in $SourceDest.Keys) {
$to_folder = $SourceDest[$from_folder]
$Source = $namespace.Folders['mymail@account.com'].Folders[$from_folder]
$Dest = $namespace.Folders['myPST'].Folders[$to_folder]
$Messages = $Source.Items
foreach ($msg in $Messages) {
[void]$msg.Move($Dest)
}
}
【问题讨论】:
-
我的个人案例研究的一些附加信息: 1. 电子邮件帐户是 Office365 帐户,属于我的公司。 2. PST 文件是本地的,我将其用于备份目的 3. 脚本工作正常,它不返回任何错误,我可以用一些断点调试它吗?
标签: powershell email outlook pst