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

  • 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

0回の閲覧