Следующий фрагмент скрипта PowerShell отлично работает в Windows 10 (PSv5.1) с последней версией .NET (4.8).
В Windows 7 (PSV2.0) происходит сбой с ответом сервера: «Требуется авторизация». Однако, если я заменим $ sendercreds.Password на фактический пароль в виде открытого текста, это сработает !!
$sendercreds = Get-Credential
$smtp = New-Object System.Net.Mail.SmtpClient
$to = New-Object System.Net.Mail.MailAddress("someone@somewhere.com")
$from = New-Object System.Net.Mail.MailAddress("sender@senderhost.com")
$msg = New-Object System.Net.Mail.MailMessage($from, $to)
$msg.subject = "Something I want to tell them"
$smtp.Host = "smtpserver.senderhost.com"
$smtp.EnableSsl = $True
$smtp.Port = 587
$smtp.Credentials = New-Object System.Net.NetworkCredential($sendercreds.UserName, $sendercreds.Password)
$smtp.Send($msg)
Я обновил Win7-машину .NET с 4.6.1 до 4.8: без радости ...
Похоже, что-то связано с поддержкой SecureString в PS2.0, но я не могу найти в сети ничего об этом после ЧАСОВ ударов головой !!