在 PowerShell 中向多個收件人傳送電子郵件

Migel Hewage Nimesha 2024年2月16日
在 PowerShell 中向多個收件人傳送電子郵件

自動向一組使用者傳送電子郵件是一個常見的要求,也是不同程式語言的開發人員的困惑點。通過 PowerShell,可以啟用此要求。

本文將討論如何通過 PowerShell 向多個收件人傳送電子郵件。

在 PowerShell 中向一組收件人傳送電子郵件

一些使用者的一個常見問題是電子郵件僅傳送給一個收件人,即給定列表的第一個收件人。有一些方法可以自動向所有必需的收件人傳送電子郵件。

收件人列表必須作為字串陣列傳遞。如果你提供列表,它將不會正確傳送給所有需要的使用者。下面的程式碼用於新增多個收件人。

[string[]]$recieverslist = "Asenika <asenika@gmail.com>", "Mark <mark@kln.au.lk>"

上面的命令將建立一個收件人列表,你可以向其傳送帶有附件的電子郵件。你必須在以下示例中為收件人提供 $recieverslist

send-mailmessage -from "test@123" `
            -to "$recieverslist" `
            -subject "test" `
            -body " test test test" `

使用上面的命令加上正確的伺服器詳細資訊、加密等,你可以將電子郵件傳送到上述 $recieverslist 中的完整接收者列表。因此,使用者可以避免多個收件人的問題。

另一種方法是給列表一個引數並將其拆分。

PS C:\Users\Agni> $receiverslist = "asenika@gmail.com;MArk@domain.org"
>> $username = "asenika@gmail.com"
>> $password = "password"
>>
>> $password = ConvertTo-SecureString -String $password -AsPlainText -Force
>> $credentials = New-Object System.Management.Automation.PSCredential $username, $password
>> $emailParameter = @{
>>     To = $receiverslist.Split(';')
>>     From = "Asenika <asenika@gmail.com>"
>>     Subject = "tesing"
>>     Body = "testing"
>>     SmtpServer = "smtp.gmail.com"
>>     Port = 587 #465
>>     Credential = $credentials
>>     UseSsl = $true
>> }

在這裡,輸出將是傳送給指定使用者的電子郵件。

你可以在此處閱讀有關 PowerShell 及其命令的更多資訊。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.