Powershellメール送信でのアドレス情報空欄処理
Q&A
解決したいこと
csvメールアドレスリストを読み込み$Toへセットしてメールを送信します。
1レコードには、1以上4未満の宛先アドレス情報が登録されております。
宛先アドレスの2つ目、3つ目が空欄の場合の処理方法についてご教示ください。
発生している問題・エラー
Send-MailMessage : パラメーター 'To の引数を確認できません。引数が null または空です。null または空でない引数を指定して、コマンドを再度実行してください。
該当するソースコード
#csv読込
$csv = Import-Csv .\sample.csv -Encoding Default -Header "csv_data_a","csv_data_b","csv_data_c","csv_data_d","csv_data_e"
$data_a = @($csv | % {$_.csv_data_a})
$data_b = @($csv | % {$_.csv_data_b})
$data_c = @($csv | % {$_.csv_data_c})
$data_d = @($csv | % {$_.csv_data_d})
$data_e = @($csv | % {$_.csv_data_e})
for ( $i = 0; $i -lt $data_a.Length; $i++ )
{
#メールの件名
$title = "あれの件です("+$data_b[$i]+")"
if($data_c[$i] -eq $null -and $data_d[$i] -eq $null)
{
$To = $data_a[$i]
}
elseif($data_c[$i] -eq $null -and $data_d[$i] -ne $null)
{
$To = @($data_a[$i],$data_c[$i])
}
else
{
$To = @($data_a[$i],$data_c[$i],$data_d[$i])
}
if($data_e[$i] -eq $null)
{
$Cc = "cc@hoge.hoge"
}
else
{
$Cc = $data_e[$i]
}
echo $To
}
csvファイルの中身
to,username,to2,to3,cc
tono1@hoge.hoge,User1,tono2@hoge.hoge,tono3@hoge.hoge,cc@hoge.hoge
tono1@hoge.hoge,User2, , ,cc@hoge.hoge
tono1@hoge.hoge,User3, , ,
自分で試したこと
-eq の式の部分をいくつ変えてみましたが改善できませんでした。
0