2017-03-09 103 views
0

我试图将电子邮件发送到使用OG PowerShell 1.0中一个以上RECEIPIENT不止一人。但是我失败了。我想我误解了foreach循环,但我不确定。有人可以帮我吗?发送电子邮件使用电源外壳1.0

[string[]]$receipients = "[email protected]", "[email protected]" 

foreach ($person in $receipients){ 
    $mail = @{ 
     SmtpServer = 'mycoolserver.com' 
     Port = 33 
     From = "me" 
     To = "$person" 
     Subject = "mycoolsubject" 
     Body = "Hey guys!" 
    } 
    Send-MailMessage @mail 
    Write-Host "$person received" 
} 

它也只记录[email protected] [email protected]收到。 (这就是为什么我认为循环是错误的定义。)

+0

您在您的foreach中拼写错误的收件人。 – notjustme

+0

@notjustme我只是搞砸了首都,不是吗?就我而言,这并不重要。改变它也没有帮助。 – oRookie

+0

我没有看到那些变量名称中的大写字母。比较$收件人和$收件人。明显不同的拼写。 – notjustme

回答

0

当您使用PS V1,则无法使用 - 端口参数。 如果你乐于使用默认的端口25,然后将下面的代码应该为你工作(包括詹姆斯的C建议):

[string[]]$recipients = "[email protected]", "[email protected]" 
foreach ($person in $recipients) 
{ 
    Send-MailMessage ` 
     -SmtpServer "mycoolserver.com" ` 
     -From "[email protected]" ` 
     -To "$person" ` 
     -Subject "mycoolsubject" ` 
     -Body "Hey guys!" 
    Write-Host "$person received" 
} 

如果你一定要在你的问题使用其他端口,如端口33,然后尝试此版本:

[string[]]$recipients = "[email protected]", "[email protected]" 
foreach ($person in $recipients) 
{ 
    $mailfrom = "[email protected]" 
    $mailto = $person 
    $mail = New-Object System.Net.Mail.MailMessage($mailfrom, $mailto) 
    $mail.Subject = "mycoolsubject" 
    $mail.Body = "Hey guys!" 
    $mailserver = "mycoolserver.com" 
    $mailclient = New-Object System.Net.Mail.SmtpClient 
    $mailclient.Host = $mailserver 
    $mailclient.Port = 33 
    $mailclient.send($mail) 
    Write-Host "$person received" 
} 
0

您使用的参数泼洒这是PowerShell的V2,不与PS V1工作的一项新功能。

你只是需要直接分配的参数是这样的:

[string[]]$recipients = "[email protected]", "[email protected]" 

foreach ($person in $recipients) 
{ 
    Send-MailMessage ` 
     -SmtpServer 'mycoolserver.com' ` 
     -Port 33 ` 
     -From "me" ` 
     -To "$person" ` 
     -Subject "mycoolsubject" ` 
     -Body "Hey guys!" ` 
    Write-Host "$person received" ` 
} 
+0

测试这个在PowerShell中V1表明,它不为工作 - 端口参数不可用。另外我会认为第11和12行(-body和Write-Host)上的反引号应该被删除。 –