使用 PowerShell 傳送電子郵件
Marion Paul Kenneth Mendoza
2022年5月16日
Windows PowerShell 是一個命令列 shell,用於解決 Windows 中的一些管理任務以及在此作業系統上執行的應用程式。通用指令碼語言允許你定製 cmdlet 以執行特定功能。
傳送電子郵件就是其中之一。本文將討論使用 Windows PowerShell 傳送電子郵件和處理此方法的其他方式。
在 PowerShell 中使用 Send-MailMessage
Cmdlet 傳送電子郵件
這是一個基於 Send-MailMessage
cmdlet 的示例,你現在可以使用 SMTP 協議從 PowerShell 傳送電子郵件。
Send-MailMessage -To "user@contoso.com" -From "user@abccompany.net" -Subject "Hello!" -Body "This is important" -Credential (Get-Credential) -SmtpServer "smtp.gmail.com" -Port 587
我們只需要插入發件人和收件人的電子郵件地址,並指定我們要使用的 SMTP 伺服器。
Send-MailMessage
cmdlet 還允許你使用命令的許多引數在電子郵件中新增更多詳細資訊。這是我們可以使用 cmdlet 使用的引數列表。
引數 | 引數描述 |
---|---|
-To |
目標收件人的電子郵件地址。 |
-Bcc |
將被 Blind Carbon 複製的電子郵件地址。 |
-Cc |
將被碳複製的電子郵件地址。 |
-From |
發件人或源電子郵件地址。 |
-Subject |
電子郵件的主題。 |
-Body |
電子郵件的正文。 |
-BodyAsHTML |
表示電子郵件的正文具有 HTML 標記。 |
-Attachments |
要附加到名稱的檔名。 |
-Credential |
用於傳送電子郵件的憑據。 |
-SMTPServer |
SMTP 伺服器的名稱。 |
-Port |
SMTP 伺服器埠。 |
-UseSSL |
傳送電子郵件時將使用安全套接字層 (SSL) 協議。 |
你可以先將引數值分配給變數,然後再將它們插入命令列以便於閱讀。
$From = "user@abccompany.net"
$To = "user@contoso.com"
$Copy = "manager@contoso.com"
$Attachment = "C:\Temp\file.jpg"
$Subject = "Photos of Drogon"
$Body = "<br>Please see attached picture for reference."
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "465"
Send-MailMessage -From $From -to $To -Cc $Copy -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -UseSsl -Credential (Get-Credential) -Attachments $Attachment
預設情況下,Send-MailMessage
命令嘗試通過標準 SMTP 埠 TCP 25 傳送電子郵件。
但是,假設你的 SMTP 伺服器只允許使用加密協議傳送電子郵件。在這種情況下,我們可以最頻繁地指定埠號;它是 465 或 587 和 -UseSSL
開關引數。
下表顯示了流行的公共電子郵件提供商的 SMTP 伺服器引數列表,我們可以使用這些引數從 Windows PowerShell 傳送訊息(請注意,我們必須允許在帳戶介面中通過 SMTP 傳送電子郵件):
服務 | SMTP 伺服器 | 埠 | 連線 |
---|---|---|---|
Gmail | smtp.gmail.com |
587 | TLS |
25 | TLS | ||
465 | SSL | ||
Office 365 | smtp.office365.com |
587 | TLS |
25 | TLS | ||
Outlook.com | smtp-mail.outlook.com |
587 | TLS |
25 | TLS | ||
雅虎郵箱 | smtp.mail.yahoo.com |
587 | TLS |
25 | TLS | ||
465 | SSL | ||
Windows Live Hotmail | smtp.live.com |
587 | TLS |
25 | TLS | ||
Zoho | smtp.zoho.com |
587 | TLS |
465 | SSL |
Author: Marion Paul Kenneth Mendoza
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn