在 PowerShell 中向多个收件人发送电子邮件
![在 PowerShell 中向多个收件人发送电子邮件](/img/PowerShell/feature-image---send-mailmessage-to-multiple-recipients.webp)
自动向一组用户发送电子邮件是一个常见的要求,也是不同程序语言的开发人员的困惑点。通过 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 及其命令的更多信息。
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.