在 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.