社内SEの徒然なる日記

powerShellでメールを送ってみた

■ メール送信

死活監視ツールをpowerShellで頑張って作ります。
死活監視って、毎日やらないと意味がない業務なんですけど、暇な時はともかく
忙しい時は煩わしくてかなわない...

ならば、pingを打って通らなかった時だけ管理者にメールを通知してやればいい。
powerShellには「send-mailmessage」なるメール送信のコマンドがあるようなので
試してみました。

# エンコード
$encoding = [System.Text.Encoding]::UTF8

# メールアドレス(送信者)
[System.String]$fromAddress = "システム管理者 <******@k**az***.co.jp>"

# メールアドレス(受信者)
[System.String]$toAddress = "システム部 <******@testCom*.co.jp>"

# メールサーバ
[System.String]$serverAddress = "10.2**.1.*4"

# コマンド実行
send-mailmessage -from $fromAddress -to $toAddress -SmtpServer $serverAddress -Encoding $encoding -subject "件名" -Body "本文"


注意点はエンコードの指定です。
パラメータ -Encoding で設定するんですけど省略も可能です(省略時はASCIIになる)。
エンコードがASCIIだと全角文字は全滅状態(文字化けする)なので、送信先のメールサーバ
で使えるエンコードを指定してやります。
ベンダーによると、私の会社のメールサーバだとEUCかshift-jisらしい。
んで、指定できるエンコードを調べてみると...

-Encoding

本文と件名に使用されるエンコードを指定します。有効な値は、ASCII、UTF8、UTF7、UTF32、Unicode、BigEndianUnicode、Default、および OEM です。ASCII が既定値です。

参考URL:http://technet.microsoft.com/ja-jp/library/dd347693

え?これだけ?
この辺りの知識が乏しいので、どれを使えばいいのか分からん。
とりあえず、UTF8 にしたら動いたのでこれにしてみます。

外部に出るメールなら真面目に調べるんですけど、自社内(のさらに自部署)で完結するメールだし届けばいいか。

では、本日はここまで。

投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end ---

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する