Кому писать на основании файла вложения - PullRequest
0 голосов
/ 21 июня 2019

Без использования тонны выражений ElseIf возможно ли выбрать получателя электронного письма на основе файла, который будет прикреплен к электронному письму при переборе всех файлов в папке?

Я началпостроение этого без использования foreach get-ChildItem, работающего над папкой, в которой я создаю объект электронной почты, назначаю определенных получателей и выбираю определенный файл из папки, но это довольно утомительно и повторяется.Я чувствую, что должен быть способ использования массива массивов или чего-то такого, где на основе файла, в котором находится цикл, проходит список получателей и, возможно, пользовательская строка темы.

Существует множество сообщений PowerShellкод там, поэтому я не буду репостить это.Просто не знаю, как на это напасть.

1 Ответ

0 голосов
/ 24 июня 2019

Одним из вариантов может быть наличие сопровождающего файла CSV со строками для имени файла, получателя, имени субъекта и т. Д. Затем можно импортировать файл CSV с помощью Import-Csv .

Например:

$emailList = Import-csv c:\users.csv

foreach ($line in $emailList) {
  Write-Host "Sending message to $($line.emailAddress)"
  Send-MailMessage -To $line.emailAddress `
    -Subject $line.subject `
    -Attachments $line.attachmentPath `
    -Body $line.bodyText
}

и если вы хотите определить содержимое CSV в сценарии PowerShell, а не использовать внешний файл, вы можете сделать что-то вроде:

$emailList = "emailAddress,subject,attachmentPath,bodyText
joe@bloggs.com,Attachment for Joe,c:\attachmentsToSend\joe.pdf,Attached is your file
Mary@bloggs.com,Mary's attachment,c:\attachmentsToSend\mary.pdf,Hello, Mary. Attached is your file
" | ConvertFrom-Csv

Поместите это выше цикла foreach в скрипте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...