• Kawahara

AS400の異常をメールで通知する(1)

AS400の異常をメールで通知する方法を探していたが、外部のSMTPサーバーを利用してメールを送信する事はできない。SMTPサーバーを立てても日本語は扱えない。SMTPサーバーを立ててもユーザーが無いと送信できない

などの諸事情と自身のAS400に対するスキルの無さを踏まえた上で下記の方法を取った。

AS400自身からメールを送信することは諦めて、RUNRMTCMDを使う

こうしてしまえばあとはWindowsの領域に無理矢理引きずり出せる。VBScriptは起動時にcscript AS400Mail.vbs

としなくてはならないので、呼び出し用のbatファイルを組み合わせました。メールのSubjectとBodyをvbs内で設定するようにしたのは、batファイルから渡せなかった為の妥協です(汗)。

AS400Mail.vbs


Set a = CreateObject("CDO.Message")
a.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
a.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.xxx.xxx"
a.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
a.Configuration.Fields.Update

a.From = "xxxx@exsample.com"
a.To = "test@exsample.com"
a.Subject = "[AS400]エラー通知"
a.TextBody = "AS400にてエラーしました。" & vbCrLf

'// 送信パターン指定があるか?
If WScript.Arguments.Named.Exists("I") Then
    iSendMode = 0

    If WScript.Arguments.Named("I") <> "" Then
        iSendMode = CInt(WScript.Arguments.Named("I"))
    End If	

    SELECT CASE iSendMode
    CASE "1"
        ' 01 ファイルロックモニタ用
        a.Subject = "[AS400]ファイルロック発生通知"
        a.TextBody = "AS400にてファイルロック発生通知が発生したようです。" & vbCrLf
    CASE ELSE
        a.Subject = "[AS400]エラー通知"
        a.TextBody = "AS400にてエラーしました。" & vbCrLf
    END SELECT
End If

'// 時刻を末尾に追加
a.TextBody = a.TextBody & Now

'// メール送信
a.Send

AS400MAIL.BAT

cscript D:cmdsAs400Mail.vbs /I:%1

#AS400 #i5

2回の閲覧

最新記事

すべて表示

ファーストサーバのデータ消失について

ガルーンの運用はデータ量の増加が多く、システム担当の負荷が高い。そのため、クラウドサービスやホスティングを利用するべきだという考えを私も持っていましたが・・・ファーストサーバによって、根底から覆されました。詳細は省略。 そもそも冷静に考えれば運営しているサイトが月間何億の利益を上げようが、ホスティング会社には数千円の月額使用料しか収入が無い。今回のようなトラブル発生時に保険金が下りるような対応をし

Disk2VhdでP2V

Disk2Vhdを使用して、物理サーバーを仮想化しようと試してみた。が、「A disk read error occured」との事で起動できず。HDDのイメージバックアップツールのCDから仮想化したサーバーから起動してみるとディスクが正しく認識されていない。 どうも、Disk2Vhdは物理HDD毎にイメージファイルを生成するもよう。物理HDD内に複数のパーティションが割り当てられている場合は同時

© 2019 BY マルハチITサービス PROUDLY CREATED WITH Wix.com​