64

添付ファイル付きの電子メールを送信するためのこのPowerShellスクリプトがありますが、複数の受信者を追加すると、最初の受信者だけがメッセージを受け取ります。ドキュメントを読みましたが、まだ理解できません。ありがとうございました

$recipients = "Marcel <marcel@turie.eu>, Marcelt <marcel@nbs.sk>"

Get-ChildItem "C:\Decrypted\" | Where {-NOT $_.PSIsContainer} | foreach {$_.fullname} |
send-mailmessage -from "primasfrb@nbs.sk" `
            -to "$recipients" `
            -subject "New files" `
            -body "$teloadmin" `
            -BodyAsHtml `
            -priority  High `
            -dno onSuccess, onFailure `
            -smtpServer  192.168.170.61
4

9 に答える 9

97
$recipients = "Marcel <marcel@turie.eu>, Marcelt <marcel@nbs.sk>"

タイプ(配列)stringに渡す必要がsend-mailmessageあるタイプです:string[]

[string[]]$recipients = "Marcel <marcel@turie.eu>", "Marcelt <marcel@nbs.sk>"

string[] にキャストしないことで、powershell の強制ルールが機能すると思います。

$recipients = "Marcel <marcel@turie.eu>", "Marcelt <marcel@nbs.sk>"

タイプですobject[]が、同じ仕事をすることができます。

于 2012-04-20T07:22:01.620 に答える
39

Powershell 配列を作成するだけでうまくいきます

$recipients = @("Marcel <marcel@turie.eu>", "Marcelt <marcel@nbs.sk>")

添付ファイルにも同じアプローチを使用できます

$attachments = @("$PSScriptRoot\image003.png", "$PSScriptRoot\image004.jpg")
于 2015-05-12T14:23:06.910 に答える
7

次のように、最初に文字列文字列配列に変換する必要があります。

$recipients = "Marcel <marcel@turie.eu>,Marcelt <marcel@nbs.sk>"
[string[]]$To = $recipients.Split(',')

次に、Send-MailMessage次のように使用します。

Send-MailMessage -From "primasfrb@nbs.sk" -To $To -subject "New files" -body "$teloadmin" -BodyAsHtml -priority High -dno onSuccess, onFailure -smtpServer 192.168.170.61
于 2015-05-05T12:12:11.020 に答える
6

文字列の配列を定義するには、$var = @('User1 ', 'User2 ') を使用する方が快適です。

$servername = hostname
$smtpserver = 'localhost'
$emailTo = @('username1 <user1@dom.com>', 'username2<user2@dom.com>')
$emailFrom = 'SomeServer <user3@dom.com>'
Send-MailMessage -To $emailTo -Subject 'Low available memory' -Body 'Warning' -SmtpServer $smtpserver -From $emailFrom
于 2016-10-05T16:06:40.223 に答える
2

そうです、各アドレスを引用する必要があります。コマンド ラインに複数のアドレスがリストされている場合、わかりやすい部分と電子メール アドレス部分の両方を指定すると、Send-MailMessage はそれを好みます。

于 2012-09-10T21:59:16.433 に答える