【Powershell】Powershellでメールをおくる
最近powershellでバッチを作ることにはまっているので、
powershell関連をちょこちょこ書いていこうかと思います。
さっそく、powershellで、メールを送る方法ですが
Send-MailMessage この一文だけでOKです。
powershellはいろいろ命令がそろっているのでホント便利ですよね。
下記サイト参考にさせていただきました。
tech.lecume.net
こんな感じで使ってます。
Send-MailMessage -To $to -From $from -Cc $Cc -SmtpServer $smtp -Subject $subject -Body $body -Encoding ([System.Text.Encoding]::UTF8)
引数を追加すると最終的にこんな感じです
# 宛先メールアドレス $to = "宛先@宛先.com" # 送信元メールアドレス $from = "送信元@送信元.com" # Cc $Cc = "CC@CC.com" # SMTPサーバー(IP、ホスト名どちらでも) $smtp = "SMTP.com" # 件名 $subject = "件名" # 本文 [string]$body = @() $body += "1行目n`n" $body += "2行目`n`n" $body += "3行目`n`n" $body += "4行目`n`n" #メール送信 Send-MailMessage -To $to -From $from -Cc $Cc -SmtpServer $smtp -Subject $subject -Body $body -Encoding ([System.Text.Encoding]::UTF8)
これで正常、異常に分けて宛先を変えたり、本文を変えることも可能です。
本文の $body = @() は後から値を追加していきたいために、いったん空の配列を
作成しています。
こうすることで、ArrayListのように宣言を覚えておかなくても使用することができます。
こういう技を覚えておくと便利ではないでしょうか。
次に
添付ファイルがある場合は引数を増やしていくだけです。
#添付ファイル $attachment = $File Send-MailMessage -To $to -From $from -Cc $Cc -Attachments $attachment -SmtpServer $smtp -Subject $subject -Body $body -Encoding ([System.Text.Encoding]::UTF8)
こちらも正常、異常によって添付するものを分けて使っています。
バッチでメール送れるとやりたいことが増えますよね。