Можно ли использовать Send-MailMessage с учетными данными по умолчанию? - PullRequest
1 голос
/ 23 сентября 2019

Я пытался написать скрипт powershell, который отправляет автоматическое электронное письмо как часть своего процесса, используя учетные данные пользователя, вошедшего в систему.Я нашел два основных метода для этого: Send-MailMessage и использование объекта Net.Mail.SmtpClient.

Я смог запустить его без проблем с помощью объекта Net.Mail.SmtpClientОднако этот API помечен как устаревший, и поэтому я предпочел бы не использовать его, если это возможно, однако я не смог заставить Send-MailMessage работать с использованием учетных данных по умолчанию.

Без UseDefaultCredentials обоихприведенные ниже сценарии завершаются с тем же общим сообщением.

$smtpServer = "server.com"
$smtpFrom = "user@server.com"
$smtpTo = "user@server.com"
$messageSubject = "THIS IS WHERE YOUR SUBJECT GOES"
$messageBody = "This is a test of automated email at $([datetime]::Now.ToString('dd.MM.yyyy - HH.MM.SS'))"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.EnableSsl = $true
$smtp.Port = 587
#$smtp.UseDefaultCredentials = $true
$smtp.Send($smtpFrom,$smtpTo,$messagesubject,$messagebody)

и

$mailsplat = @{
    SmtpServer = 'server.com'
    From = 'user@server.com'
    To = 'user@server.com'
    Subject = 'THIS IS WHERE YOUR SUBJECT GOES'
    Body = "This is a test of automated email at $([datetime]::Now.ToString('dd.MM.yyyy - HH.MM.SS'))"
    Port = 587
    UseSSL = $true
    #UseDefaultCredentials = $true
}
Send-MailMessage @mailsplat

"SMTP-серверу требуется защищенное соединение или клиент не прошел проверку подлинности. Ответ серверабыл: 5.7.1 Клиент не был аутентифицирован "

Исправить первый скрипт легко.Если я раскомментирую строку UseDefaultCredentials, она будет работать как положено.Однако для Send-MailMessage нет параметра UseDefaultCredentials или аналогичного параметра.Я бы предпочел использовать Send-MailMessage, так как это рекомендуемый метод, а другой помечен как устаревший, но на самом деле я не могу найти способ заставить его работать с моими требованиями (несмотря на множество сообщений о том, что Send-MailMessage будетиспользуйте учетные данные по умолчанию, если они не предоставлены, и документацию, указывающую на это)

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