繁体   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