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

  • このエントリーをはてなブックマークに追加
  • Pocket

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

ご訪問ありがとうございます。
参考になりましたら『いいね!』もお願いします。

ITの活用情報を毎週お届けする無料メルマガに是非ご登録ください。

閉じる

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

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

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