へっぽこエンジニアの覚え書き

主に、バッチとTeraTermマクロのことについて書きます。

Powershellでメール送信

Powershellでメールを送信するコードです。

監視系で使えると思います。

必要事項を適宜変更すればコピペで使えると思います。

$mail.ReplyTo = $replytoはコメントアウトしてもよいかもしれません。

 

Param([int] $ret)
$smtp = "smtp.example.co.jp"
$targets = @("target@example.co.jp","target2@example.co.jp")
$from ="from@example.co.jp"
$replyto = ""
$bcc = ""

$subjectOK = "OK"
$subjectNG = "NG"

$bodyOK = @"
正常でした。
"@
$bodyNG = @"
異常ありです
"@

$mail = New-Object net.mail.mailmessage
$mail.from = $from
$mail.ReplyTo = $replyto

if($ret -eq 0) {
$mail.subject = $subjectOK
$mail.Body = $bodyOK
} else {
$mail.Subject = $subjectNG
$mail.Body = $bodyNG
}

$mail.SubjectEncoding = [text.encoding]::GetEncoding("UTF-8")
$mail.BodyEncoding = [text.encoding]::GetEncoding("ISO-2022-jp")

foreach ($to in $tergets){
$mail.to.add($to)
}

if($bcc -ne ""){
$mail.bcc.add($bcc)
}

if($replyto -ne ""){
$mail.replyto = $replyto
}

$sc = New-Object net.mail.smtpclient($smtp)

$sc.send($mail)$mail.dispose()