[英]Send-MailMessage multiple parsing variable
我想將帶有PowerShell的Send-MailMessage
給多個用戶。 這有效:
Send-MailMessage -To "test@mail.fr", "test2@mail.fr" -Subject "TEST BASE INCIDENT SCRIPT" -Body "TEST" -SmtpServer $emailSMTP -BodyAsHtml -Credential $emailCredential -Encoding $emailEncoding
我有一個像這樣構造的變量$email
:
$email = ''
$c = 0
foreach ($currentValue in $value) {
$id = $currentValue.LookupId
$spUserManager = $spweb.AllUsers.GetByID($id)
if ($c -gt 0) {
$email += ","+($spUserManager.Name + " <" + $spUserManager.Email + ">")
} else {
$email += ($spUserManager.Name + " <" + $spUserManager.Email + ">")
}
$c++
}
但是,當我用變量$email
替換-To
時,它不起作用。 (沒有錯誤,只需發送給$email
的第一個用戶)。
Send-MailMessage -To $email -Subject "TEST BASE INCIDENT SCRIPT" -Body "TEST" -SmtpServer $emailSMTP -BodyAsHtml -Credential $emailCredential -Encoding $emailEncoding
-To<String[]>
指定郵件發送到的地址。 輸入名稱(可選)和電子郵件地址,例如“名稱”。 此參數是必需的。
例:
send-mailmessage -from "..." -to "User02 <user02@example.com>", "User03 <user03@example.com>" -subject ...
此命令將一封帶有附件的電子郵件從User01發送給其他兩個用戶。
我的意思是,你需要使用,
分離器將電子郵件發送到幾個用戶。
correct "User02 <user02@example.com>", "User03 <user03@example.com>"
wrong "User02 <user02@example.com> , User03 <user03@example.com>"
正如@MrDywar指出的那樣,您正在將$email
構造為單個逗號分隔的字符串:
"test <test@mail.fr>,test2 <test2@mail.fr>"
當它需要一個字符串列表時:
"test <test@mail.fr>", "test2 <test2@mail.fr>"
這應該產生期望的結果:
$email = foreach ($currentValue in $value) {
$spUserManager = $spweb.AllUsers.GetByID($currentValue.LookupId)
$spUserManager.Name + " <" + $spUserManager.Email + ">"
}
Send-MailMessage -To $email -Subject ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.