ラージビッグバナー(970x90)

Windows

【PowerShell】Gmailを送信するスクリプト

更新日:

ビッグバナー(piglog)728px

タイトルの通りですが、PowerShellを使ってGmail送信するスクリプトを作ったのでメモします。

バックアップなどの処理結果を、Gmailで通知できたらよいなぁと思って用意したもの。宛先を引数に与えて実行したり、サブジェクトやメール本文はテキストから読み込むようにしたりなどしてます。改良の余地はあるが、ひとまず備忘録も兼ねて。

スクリプト

前提として、

  • Gmailアカウントは固定でスクリプト内に記載します
  • パスワードは平文で記載です

その1(ヘッダ全指定)

以下のヘッダ、本文をすべてスクリプト内に指定します。とりあえず、動きの確認も兼ねてということで。

  • メールの送信先
  • メールの宛先
  • メール件名
  • メール本文

 その2(宛先を引数で指定)

その1ではすべてスクリプト内に指定していたところを、宛先を引数として与えてスクリプトを実行するようにしてみる。

Usage を書くべきでした。今度追記します。

その3(件名・本文はテキストから読み込み)

さらにサブジェクトと本文をテキストから読み込む形にする。これでそれなりに実用的になったはず。

$Bodyに指定したGet-Contentの -Raw パラメータはテキストをまるごと読み込むので、メール本文を改行したい場合は、テキストファイル内に`r`n を明記する必要はなく-Rawパラメータをつけるだけで良い。-Rawを付けないと改行されない状態でメール送信される。ちなみに、-Rawを付けても付けなくても`r`nを記載した場合はそのまま表示される。

また、サブジェクトと本文読み込み用のテキストはあらかじめ用意する必要がある。例えば、Robocopyなどのバックアップ処理の結果をテキストに自動で書き込んでおくなどすれば、そのまま読み込むだけで一連の処理(バックアップ処理+処理結果通知)ができあがる。

おまけ

以下のエントリで紹介していますが、ROBOCOPYのログからエラーを抜粋する方法と組み合わせれば、エラー内容のみをメール通知することもできます。

【PowerShell】ROBOCOPYログのエラー内容を抜粋する方法

以上です。

↓↓↓ 持っていると便利な一冊。

pig-log_ディスプレイ横長

リンクユニット(レスポンシブ)

-Windows
-, ,

Copyright© ぴぐろぐ , 2024 All Rights Reserved.