$filepath = "c:\scripts\users.csv" Function EMAIL{ Param( $emailSmtpServer = "smtp.office365.com", #SMTP server $emailSmtpServerPort = 587, #Порт $emailSmtpUser = "User@company.com", #Имя для входа $emailSmtpPass = "******", #Пароль от учётной записи $emailFrom, #Отправить как $emailTo, #Кому отправить #$emailAttachment, #Вложение. Если есть - снимаем коммент $emailSubject, #Тема письма $emailBody #Текст письма ) Process{ $emailMessage = New-Object System.Net.Mail.MailMessage( $emailFrom , $emailTo ) $emailMessage.Subject = $emailSubject #$emailMessage.Attachments.add($emailAttachment) #Снимаем коммент, если необходимо прикрепить файл $emailMessage.IsBodyHtml = $true $emailMessage.Body = $emailBody $SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort ) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass ); $SMTPClient.Send( $emailMessage ) } } #Если надо отправить одно письмо EMAIL -emailFrom mycustomname@company.com -emailTo me@testcompany.com -emailSubject "Test" -emailBody "Test" #Если надо отправить от разных пользователей письмо на один адрес $user = Import-CSV $filepath -Header UPN,Password | Foreach-Object{ EMAIL -emailSmtpUser $_.UPN -emailSmtpPass $_.Password -emailFrom $_.UPN -emailTo me@testcompany.com -emailSubject "Test" -emailBody "Test" Write-Host $_.UPN #Обожаю следить за процессом }
Формат .csv файла прост: username@company.com,password