2020/11/07 #メールの一斉送信#2

皆様おはようございます、
#猫でもできるPowerShell(備忘録)
#メールの一斉送信#2

昨日やったメールの一斉送信のテンプレ

<# 元ネタはこちら
2020/05/21 #メールを送る
https://tptptb.hatenablog.com/entry/2020/05/21/234759
#>


$List    = [宛先リスト.csv]
$ref     = [添付ファイル.pdf]
$bodytmp = [本文ひな型.txt]

ipcsv $List -en default  |
? {$_.'送付フラグ' -eq 1} |
ForEach-Object {

# to、cc欄は1箇所でも nullが混在すると送信エラーになるので注意
# 宛先リストのcsvに空欄があるとパイプライン変数が nullになる

$to          = @()
$to         += ($_.'toアドレス').split(",")
$cc          = @()
$cc         += ($_.'ccアドレス').split(",")

$from        = [送信者アドレス]
$smtp        = [メールサーバホスト名]   #IPアドレスでも可

$attach0    = $ref    #添付ファイル
$subject     = [題名]

#本文ひな型の読み込み
$body    = Get-Content $bodytmp -Raw 
$body     = $body.Replace('[$V0]', $_.'部署名')
$body     = $body.Replace('[$V1]', $_.'担当者')
$body     = $body.Replace('[$V2]', $_.'個別コンテンツ')
$encoding  = 'default'

Send-MailMessage  `
  -TO $to -CC $cc -From $from -SmtpServer $smtp -Attachments $attach0 `
  -Subject $subject -Body $body -Encoding $encoding

}

[本文ひな型.txt] には予め変数となる [$V0][$V1][$V2]という文字を埋め
込んでおき、宛先ごとに内容を差し替える事をやっています。
添付ファイル($attach0) の所も @() と += のループで複数送れるような気がしてきた・・
ではまた;