我有一个大问题。对于学校俱乐部,我必须编写一个自动发送电子邮件的脚本。我决定为此使用 PowerShell。
我的代码:
Send-MailMessage –To "email@outlook.com" –Subject "Test E-Mail" –Body "FIRST EMAIL WITH POWERSHELL" –SmtpServer "smtp.gmail.com" –From "email@gmail.com"
Run Code Online (Sandbox Code Playgroud)
我的错误代码:
Send-MailMessage:SMTP 服务器需要安全连接或客户端尚未通过身份验证。服务器响应为:5.7.0 必须首先发出 STARTTLS 命令。o3sm51888528wrs.30 - gsmtp In line: 1 character: 1 + Send-MailMessage -To "email@outlook.com" 主题 "Test E-Mail" -Bod ... + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (System.Net .Mail.SmtpClient: SmtpClient) [Send-MailMessage], SmtpException +fullyQualifiedErrorId: SmtpException, Microsoft.PowerShell.Commands.SendMailMessage
如果我写
–SmtpServer "gsmtp.gmail.com"
Run Code Online (Sandbox Code Playgroud)
错误代码是:
Send-MailMessage : 无法建立到远程服务器的连接。In line:1 character:1 + Send-MailMessage -To "email@outlook.com"; - 主题“测试电子邮件”;- 博德。. . + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException +fullyQualifiedErrorId : SmtpException,Microsoft. 电源外壳。命令。发送邮件消息
你知道是什么问题吗?
首先,您需要在 Google 帐户设置中启用“安全性较低的应用”。为此,请单击以下链接,然后将允许安全性较低的应用程序设置设置为ON。
完成此操作后,您可以使用 发送您的消息Send-MailMessage
。这是一个工作示例。
$MyEmail = "email@gmail.com"
$creds = get-credential -Message 'Enter your email credentials' -Username $MyEmail
$ServerParams = @{
SmtpServer = "smtp.gmail.com"
From = $MyEmail
Port = 587
UseSsl = $true
Credential = $creds
}
$MessageParams = @{
'To' = "email@outlook.com"
'Subject' = "Test E-Mail"
'Body' = "FIRST EMAIL WITH POWERSHELL"
}
Send-MailMessage @ServerParams @MessageParams
Run Code Online (Sandbox Code Playgroud)
奖励:为了更好的可读性和可重用性,您可以设置参数
(参考:关于喷溅)
归档时间: |
|
查看次数: |
4262 次 |
最近记录: |