powershell - 已发送邮件/PowerShell 凭据
问题描述
我尝试使用基于此示例的代码发送电子邮件:https://blog.victorsilva.com.uy/credenciales-con-powershell/,但电子邮件未发送:
$emailSmtpServer = "smtp.mail.yahoo.com"
$emailSmtpServerPort = "587"
$password = Get-Content -Path "C:\Users\USUARIOPC\password2.txt" |
ConvertTo-SecureString -String $password
$credential = New-Object
System.Management.Automation.PsCredential("jrosh.01@yahoo.com", $password)
$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "jrosh.01@yahoo.com"
$emailMessage.To.Add( "jrosh.01@yahoo.com" )
$emailMessage.subject = "Notificacion de: $($env:computername)"
$emailMessage.IsBodyHtml = $true
$evento = Get-WinEvent –FilterHashTable @{logname="System"} -MaxEvents 1 |
Where {$_.ID -Match "1020"}
$emailMessage.Body = @"
<H1>Alerta Scope DHCP</H1>
<p>Evento a revisar en: <strong>$($evento.MachineName)</strong>.</p>
<p>Identificador: <strong>$($evento.Id)</strong>.</p>
<p>Fecha / Hora: <strong>$($evento.TimeCreated)</strong>.</p>
<p>Texto: <strong>$($evento.Message)</strong>.</p>
<br>
<H5><i>$(get-date)</i></H5>
"@
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer ,
$emailSmtpServerPort )
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(
$emailSmtpUser , $credential );
$SMTPClient.Send( $emailMessage )
Write-Host "Correo Enviado..."
解决方案
从您提交的错误消息来看,密码文件似乎有问题。请确保您像这样导出密码:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File C:\Users\USUARIOPC\password2.txt
P@ssword1
你的密码在哪里。
推荐阅读
- angular - 可观察 - 订阅没有收到预期值
- azure - 在 MC_ 资源组之外部署 AKS 代理池托管标识
- javascript - 是否可以使用来自网站的令牌重定向用户?
- firebase - 抽象服务类中的 Flutter Firestore 分页
- apache-beam - 有没有办法在 Apache Beam 中指定无限允许的延迟?
- python - 生成 3D 对象(例如通过 Mayavi)并将其导出为 3D 图像堆栈(例如 tiff)
- python - 在大型 GUI 项目中实现记录器的最佳实践?
- javascript - 向被踢的用户发送他们被踢的原因
- google-sheets - Google表格中列的最后一个值
- python - 尝试实现抽象方法时,进程以退出代码 -1073741571 (0xC00000FD) 完成