top of page

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

執筆者の写真: KawaharaKawahara

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

最新記事

すべて表示

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

ガルーンの運用はデータ量の増加が多く、システム担当の負荷が高い。そのため、クラウドサービスやホスティングを利用するべきだという考えを私も持っていましたが・・・ファーストサーバによって、根底から覆されました。詳細は省略。 そもそも冷静に考えれば運営しているサイトが月間何億の利...

Disk2VhdでP2V

Disk2Vhdを使用して、物理サーバーを仮想化しようと試してみた。が、「A disk read error occured」との事で起動できず。HDDのイメージバックアップツールのCDから仮想化したサーバーから起動してみるとディスクが正しく認識されていない。...

Comments


bottom of page