【当ブログではアフィリエイト広告を利用しています】

[PowerShell] コマンドでメール送信する

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

バックアップの「開始時間」「終了時間」をメールを使って通知させたいと思い、バッチ処理中にコマンドからメール送信できるようにしました。

まずはポリシーの変更をします。
※デフォルトのポリシーではPowerShellのコマンド実行が許可されていない

Set-ExecutionPolicy RemoteSigned

以下がメールを送信するスクリプトです。

$sc = New-Object Net.Mail.SmtpClient("サーバーアドレス")
$Credentials = new-object System.Net.networkCredential("アカウント名", "パスワード")

$mail = New-Object System.Net.Mail.MailMessage
$mail.from = "差出人アドレス"
$mail.to.Add("宛先アドレス")
$mail.Subject = "件名"
$mail.Body = "内容"

$sc.UseDefaultCredentials = $false
$sc.EnableSsl = $false  #非SSL環境を想定
$sc.Credentials=$Credentials #SMTP認証
$sc.Port = 587 #ポート番号はサーバーに寄って可変
$sc.Timeout = 10000
$sc.Send($mail)

メールの部分をファイル化してあげた場合は、下記のようにコマンド実行します。

powershell Set-ExecutionPolicy RemoteSigned
powershell mail.ps1
powershell Set-ExecutionPolicy Restricted

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。