PowerShellのSend-MailMessageで外部コマンドの標準出力を電子メールを送る際に改行を維持する

PowerShellを使うと良い所は、電子メールを簡単に送付できるSend-MailMessageと言う命令があるところである。 これを使って、外部コマンドの標準出力を電子メールとして送るとすると、以下のようになる。


## 管理者権限のPowerShellコンソールで、Set-ExecutionPolicy remotesignedを実行しておく必要がある。
## 使い方:
## powershell -NoProfile -ExecutionPolicy Unrestricted .\send-notification-email.ps1

# 送信する電子メールの本文はUTF-8にする。
$utf8 = ([System.Text.Encoding]::UTF8)

# 差出人
$fromaddress = "fromuser@example.com"

# 宛先として2つの電子メールアドレスを設定する。
$toaddress1 = "touser1@example.jp"
$toaddress2 = "touser2@example.jp"

# 電子メールのSubject
$subject = "件名です"

# 本文は外部コマンドの標準入力から受け取る
$body = C:\jruby-9.2.0.0\bin\jruby.exe .\output-to-stdout.rb

if ($LASTEXITCODE -ne 0)
{
  $email = @{
    From = $fromaddress
    To = "$toaddress1","$toaddress2"
    Subject = $subject
    Body = $body -join "`r`n"
    SMTPServer = "smtp.example.com"
    Encoding = $utf8
  }
  send-mailmessage @email
}
ここで、外部コマンドの標準出力が複数行存在する場合には注意が必要である。 つまり、-join "`r`n"を付けておかないと、全て結合されて1行になってしまう。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

国立公文書館所蔵の特定歴史公文書等の利用制限はないようだ

国立公文書館のよくある質問と答え によると、国立公文書館が所蔵する特定歴史公文書等を複写した資料については、 利用制限はないようだ。以下に引用しておく。 16. Q: 国立公文書館所蔵の特定歴史公文書等の画像等を出版等に利用したいのですが、どのような手続きが必...