簡體   English   中英

Send-MailMessage多個解析變量

[英]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

Send-MailMessagess64

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM