이메일 전송을 테스트하려고하는데 스크립트에 일반 텍스트 비밀번호를 갖고 싶지 않습니다.안전한 비밀번호를 사용하여 Powershell을 통해 이메일 보내기
는 여기에 내가 무엇을, 그리고이 작품 :
$SmtpServer = 'smtp.office365.com'
$SmtpUser = '[email protected]'
$smtpPassword = 'Hunter2'
$MailtTo = '[email protected]'
$MailFrom = '[email protected]'
$MailSubject = "Test using $SmtpServer"
$Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $SmtpUser, $($smtpPassword | ConvertTo-SecureString -AsPlainText -Force)
Send-MailMessage -To "$MailtTo" -from "$MailFrom" -Subject $MailSubject -SmtpServer $SmtpServer -UseSsl -Credential $Credentials
이 작동합니다.
this stackoverflow thread의 조언에 따라이 스크립트를 자격 증명을 묻지 않고 실행하거나 일반 텍스트를 입력하지 않고 실행하면 예약 된 작업으로 실행할 수 있습니다.
나는 내가 실행하여 만든 보안 암호가 있습니다read-host -assecurestring | convertfrom-securestring | out-file C:\Users\FubsyGamr\Documents\mysecurestring_fubsygamr.txt
을하지만 제안 된 항목 내 $ smtpPassword 항목을 대체 할 경우 :
$SmtpServer = 'smtp.office365.com'
$SmtpUser = '[email protected]'
$smtpPassword = cat C:\Users\FubsyGamr\Documents\mysecurestring_fubsygamr.txt | convertto-securestring
$MailtTo = '[email protected]'
$MailFrom = '[email protected]'
$MailSubject = "Test using $SmtpServer"
$Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $SmtpUser, $($smtpPassword | ConvertTo-SecureString -AsPlainText -Force)
Send-MailMessage -To "$MailtTo" -from "$MailFrom" -Subject $MailSubject -SmtpServer $SmtpServer -UseSsl -Credential $Credentials
그런 다음 이메일을 전송하지 않습니다 더 이상. 다음 오류가 발생합니다.
Send-MailMessage : The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
팁이 있습니까? 이 전자 메일 스크립트를 예약 된 작업으로 실행하고 싶지만 암호를 일반 텍스트로 저장하지 마십시오.