A
Size: a a a
A
A
AF
A
AF
AF
A
A
AF
AF
A
A
AF
$emailListLine = 'vasya@gmail.com;Masha.Zver@yandex.ru;RabotaZaebala@rambler.ru;!#$@c~~;; ;sasha@grey.com'
Function Test-ValidMailAddress {
[CmdLetBinding()]
Param(
[Parameter(Mandatory=$false)]
[AllowNull()]
[String]$EmailAddress=$null
)
if ([String]::IsNullOrWhiteSpace($EmailAddress)) {
return $false
}
if ($EmailAddress -notmatch '^\S+@(?:\S+\.)+\S{2,}$' ) {
return $false
}
try {
$emailAddressObject = [System.Net.Mail.MailAddress]::new($EmailAddress)
return $EmailAddress -eq $emailAddressObject.Address
} catch {
return $false
}
}
$addresseeList = @($emailListLine.Split(";") |
ForEach-Object {$_.Trim()} |
Where-Object { $true -eq (Test-ValidMailAddress -EmailAddress $_ ) })
# Вероятно плохой вариант - отправлять письмо сразу всем.
# В этом случае все адресаты видят друг друга
# А еще можно упереться в ограничение почтового сервера на максимальное количетсво адресатов
# Send-MailMessage -To $addresseeList -...
# Вариант номер 2 - отправлять письмо через "скрытую копию" (BCC - Blind Carbon Copy)
# В этом случае все адресаты НЕ видят друг друга
# но остается возможность упереться в ограничение почтового сервера на максимальное количетсво адресатов
# И остается проблема, что у адресата поле "Кому" пустое. Может попасть в спам
# Send-MailMessage -Bcc $addresseeList -...
# Вариант номер 3 - письмо каждому отдельно
# Можно упереться в RateLimit почтового сервера
# $addresseeList | ForEach-Object { Send-MailMessage -To $_ -.... }
AF
MO
MO
AF
MO
AF
MO