使用 Powershell 从第二个电子邮件帐户保存收件箱中的电子邮件附件

问题描述 投票:0回答:1

我编写了一个脚本,它将循环浏览我的 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)
    }}
}
powershell outlook email-attachments
1个回答
0
投票

使用

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')"

© www.soinside.com 2019 - 2024. All rights reserved.