У меня есть массив MailItems
из Outlook. Я хочу искать каждый элемент почты и возвращать Subject
и Category
на основе списка поисковых запросов, содержащихся в массиве, - в примере с именем $searchArray
.Как искать коллекцию с массивом в Powershell
Например:
$mailbox = "[email protected]"
$outlook = New-Object -com Outlook.Application
$ns = $outlook.GetNamespace("MAPI")
$inbox = $ns.Folders.Item($mailbox).Folders.Item("Inbox")
$searchItems = $inbox.Folders.Item("MySubFolder").Folders.Item("MyNestedSubFolder").Items
$searchArray = (
"Category1", ("searchTerm1","searchTerm2","searchTerm3"),
"Category2", ("searchTerm4","searchTerm5"),
"Category3", ("searchTerm6")
)
foreach ($msg in $searchItems) {
$msg | select Subject, # <Category where email address contains one of the search terms>
}
Я хочу вернуть Subject
, а затем столбец с названием Category
, который будет смотреть на $msg.SenderEmailAddress
, и если какой-либо из searchTerms в $searchArray
содержится в адрес, восстановите категория, в которой был найден этот поисковый запрос.
Например, если один из значений SenderEmailAddress
был «[email protected]», тогда возвращайте Category1 как Category
.
придираться: использовать [ 'example.com'] (https://en.wikipedia.org/wiki/Example.com) для примеров домена. –
Nit был выбран –
В вашем представлении: чтобы все элементы возвращали правильные данные, они должны возвращать одинаковое количество свойств. Таким образом, вам нужно либо вернуть все категории, либо выделить то, что вы хотите, или создать настраиваемое поле, в котором показана соответствующая категория. Может ли электронная почта соответствовать нескольким категориям? Что происходит, когда это происходит? Вы частично относитесь к структуре, которую вы сейчас используете для '$ searchArray'? Некоторые изменения в нем облегчат процесс – Matt