簡體   English   中英

PowerShell 上的 Send-MailMessage 不起作用

[英]Send-MailMessage on PowerShell does not work

我有一個大問題。 對於學校俱樂部,我必須編寫一個自動發送電子郵件的腳本。 我決定為此使用 PowerShell。

我的代碼:

Send-MailMessage –To "email@outlook.com" –Subject "Test E-Mail" –Body "FIRST EMAIL WITH POWERSHELL" –SmtpServer "smtp.gmail.com" –From "email@gmail.com"

我的錯誤代碼:

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"

錯誤代碼是:

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 帳戶設置中啟用“安全性較低的應用”。 為此,請單擊以下鏈接,然后將“允許安全性較低的應用程序”設置設置為“開”

完成此操作后,您可以使用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

獎勵:為了更好的可讀性和可重用性,您可以設置參數

(參考: 關於噴濺

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM