Приветствую, уважаемый читатель!
Недавно столкнулся с
необходимостью быстро достать список всех отправленных и полученных писем из
своего почтового ящика. Доступа к почтовому серверу не было, поэтому доставал письма из
загруженного в Outlook
профиля.
Скрипт, получающий список писем, приведён ниже:
$AllPath = "Входящие","Отправленные"
$Outlook = New-Object
-ComObject Outlook.Application
$nspace = $Outlook.GetNameSpace("MAPI")
for ($i =
1; $i -le $nspace.Folders.Count;
$i++)
{
if ($nspace.Folders.Item($i).ShowItemCount
-gt 0) {
foreach ($Path
in $AllPath)
{
switch ($Path)
{
'Отправленные' {$nspace.Folders.Item($i).Folders.Item($Path).Items
| select Subject,SentOn,To,SenderName,SenderEmailAddress,CC,Size | Export-Csv -Path "C:\Temp\out_collect.csv" -NoTypeInformation -UseCulture
-Force -encoding
"UTF8"}
'Входящие' {$nspace.Folders.Item($i).Folders.Item($Path).Items
| select Subject,ConversationTopic,CreationTime,ReceivedByName,SenderEmailAddress,To,CC,Size | Export-Csv -Path "C:\Temp\in_collect.csv" -NoTypeInformation -UseCulture
-Force -encoding
"UTF8"}
}
}
}
}
Данный скрипт выгружает
в 2 csv-файла
информацию о входящих/исходящих письмах из всех загруженных в outlook профилей. Может кому пригодится.
Спасибо. Очень полезный скрипт! Не подскажите как сделать чтобы считывались письма из подпапок?
ОтветитьУдалитьВам нужно дальше проваливаться по дереву вложенных папок, т.е.
ОтветитьУдалитьВыполняя
$Outlook = New-Object -ComObject Outlook.Application
$nspace = $Outlook.GetNameSpace("MAPI")
$nspace будет являться некой единой точкой входа в подгруженные профили оутлука.
Далее вам нужно определить какой ПЯ вас интересует и для этого вы можете посмотреть все возможные имена ПЯ, т.е. перебирайте в цикле переменную $i:
$nspace.Folders.Item($i) | select FolderPath
Далее, когда вы нашли нужный ПЯ (например с ID 2), вам необходимо определить, какая именно папка интересует (Входящие/Исходящие/Черновики и т.д.), её тоже перебираете в цикле:
$nspace.Folders.Item(2).Folders.Item($i) | select FolderPath
Таким образом, вы опускаетесь всё ниже по дереву до нужных вам созданных подпапок. И когда вы дошли до нужной ветки дерева, просто запускаете цикл, который по имени подпапки считает сколько получено писем.