我编写了一个脚本,它将循环浏览我的 Outlook 收件箱并保存我每天收到的特定文件附件。
我有两个用于 Outlook 的电子邮件地址。示例:[电子邮件受保护] 和 [电子邮件受保护]
我遇到的问题是我的脚本只会遍历并保存我的第一个(默认)电子邮件帐户([电子邮件受保护])收件箱中的附件,但我需要脚本来保存我的第一个(默认)电子邮件帐户收件箱中的附件属于 ([电子邮件受保护]) 的其他收件箱。
我是 PowerShell 的新手,我一直无法在网上找到解决方案。我正在使用 PowerShell 5.1,下面是我的脚本。
$td = Get-Date -Format "yyyy-MM-dd"
$AttachFile = "File Name.xlsx"
$FileSavePath = "C:\Temp\Attached_File_" + $td + ".xlsx"
$outlook = new-object -com outlook.application
$mapi = $outlook.GetNamespace("MAPI")
$inbox = $mapi.GetDefaultFolder(6)
$emails = $inbox.Items
foreach ($email in $emails) {
if ($email.ReceivedTime.ToString("yyyy-MM-dd") = $td) {
$email.Attachments | Where-Object {$_.FileName -eq $AttachFile} | foreach {
$_.SaveAsFile($FileSavePath)
}}
}
使用
Namespace.GetDefaultFolder
的球面度(仅返回默认存储中的文件夹),使用 Namespace.Stores
集合,找到您想要的存储(mapi.Stores.Item("[email protected]")
?),然后使用 Store.GetDefaultFolder
。
此外,不要循环遍历文件夹中的所有项目 - 使用
Items.Restrict
或 Items.Find/FindNext
进行查询,例如 "([ReceivedTime] < '11-15-2023') and ([ReceivedTime] > '11-14-2023')"