Я пытаюсь использовать сохраненный зашифрованный пароль в сценарии, который отправляет электронное письмо, но я хочу получить сообщение об ошибке:
send-mailmessage: SMTP-сервер требует безопасного соединения или клиент не был аутентифицирован. Ответ сервера: 5.7.57 SMTP; Клиент не прошел проверку подлинности для отправки анонимной почты во время MAIL FROM [DM6PR66666019.namprd456.prod.outlook.com]
Я использовал следующий код для создания текстового файла:
$passwordtostore = 'NotTheRealPassword$9gv8z6VHnPfDd8zc'
$secureStringPWD = $passwordtostore | ConvertTo-SecureString -AsPlainText -Force
$secureStringText = $secureStringPWD | ConvertFrom-SecureString
Set-Content "c:\temp\scriptsencrypted_password1.txt" $secureStringText
Я использую следующее для импорта пароля:
$passwordFile = "c:\temp\scriptsencrypted_password1.txt"
$password = Get-Content $passwordFile | ConvertTo-SecureString
Вот функция sendmail, которую я использую:
function SendMail($ToEmails,$FromEmail,$Subj,$Body,$UserName,$Password){
$cred = New-Object System.Management.Automation.PSCredential $UserName,$Password
$MailParams=@{"from"=$FromEmail; "to"=$ToEmails;"body"=$Body;"subject"=$Subj;"smtpserver"="smtp.office365.com"}
send-mailmessage @MailParams -Credential $cred -UseSsl $true -port 587
}
Вот код, который вызывает функцию:
$alertEmail = "me.stillme@mydomain.com"
$username="psemail@mydomain.com"
$passwordFile = "c:\temp\scriptsencrypted_password1.txt"
$password = Get-Content $passwordFile | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PsCredential($username, $password)
Import-Module -Name "..\SendMail.psm1"
... Doing some stuff
SendMail $alertEmail $username "This is the subject" "this is the body" $credential.UserName $credential.Password