如何引用电子邮件文件夹&子文件夹?在我的代码的第8行,我失败了olxEmailFolder和其他所有尝试获取文件夹。有什么想法吗?
#connect to outlook
$GetOutlook = New-Object -com "Outlook.Application";
$olName = $GetOutlook.GetNamespace("MAPI")
$olxEmailFolder = $olName.GetDefaultFolder('olFolderInbox')
$olxEmailFolder.Name
$olxEmailItem = $olxemailFolder.items
#show unread emails in inbox
$olxEmailItem | select olxEmailFolder, ReceivedByName, SentOnBehalfOfName, SentOn, Subject, Body | Format-Table -auto | Out-File "C:\results.txt"
#go through each subfolder and get name
$SubFolders = $olxEmailFolder.Folders
ForEach($Folder in $SubFolders)
{
$Folder.Name
$SubfolderItem = $Folder.Items
$EmailCount = 1
#create status bar for each subfolder
ForEach($Email in $SubfolderItem)
{
Do
{
Write-Progress -Activity "Checking folder" -status $Folder.Name -PercentComplete ($EmailCount/$Folder.Items.Count*100)
$EmailCount++
}
#show unread emails from subfolders
While($EmailCount -le $Folders.Item.Count)
}
}
答案 0 :(得分:-1)
你去Copra:
#connect to outlook
$GetOutlook = New-Object -com "Outlook.Application";
$olName = $GetOutlook.GetNamespace("MAPI")
$olxEmailFolder = $olName.GetDefaultFolder(‘olFolderInbox’)
$olxEmailFolder.Name
$olxEmailItem = $olxemailFolder.items
#show unread emails in inbox
$olxEmailItem | select SentOn, SenderName, Subject, Body | Format-Table -auto | Out-File "C:\A_results.txt"
#go through each subfolder and get name
$SubFolders = $olxEmailFolder.Folders
ForEach($Folder in $SubFolders)
{
$Folder.Name | select $Folder.Name | Format-Table -auto | Out-File "C:\A_results.txt" -Append
$SubfolderItem = $Folder.Items
$EmailCount = 1
#create status bar for each subfolder
ForEach($Email in $SubfolderItem)
{
Do
{
Write-Progress -Activity "Checking folder" -status $Folder.Name -PercentComplete ($EmailCount/$Folder.Items.Count*100)
$EmailCount++
}
#show unread emails from subfolders
While($EmailCount -le $Folders.Item.Count)
$Email | select SentOn, SenderName, Subject, Body | Format-Table -Auto | Out-File "C:\A_results.txt" -Append
}
}
#connect to tasks
$olxTasksFolder = $olName.GetDefaultFolder(‘olFolderTasks’)
$olxTaskItems = $olxTasksFolder.items
$TaskCount = 1
#create task array
$TaskList = @()
ForEach($TaskItem in $olxTaskItems)
{
#create status bar for tasks
Do
{
Write-Progress -Activity "Checking" -status "Tasks" -PercentComplete ($Taskcount/$olxTasksFolder.Items.count*100) | select $Taskcount, $olxTasksFolder.Items | Out-File "C:\D_results.txt"
$TaskCount++
}
#add each incomplete tash to array
While($TaskCount -le $olxTaskFolder.Items.Count)
If($TaskItem.Complete -eq $False)
{
$TaskList+=New-Object -TypeName PSObject -Property @{
Subject=$TaskItem.Subject
DateCreated=$TaskItem.CreationTime
Percent=$TaskItem.PercentComplete
Due=$TaskItem.DueDate
}}
}
#show task array to screen
#$TaskList | Sort DueDate -descending | Format-Table -Auto