2011年2月16日水曜日

IPアドレスを指定したメールへ送信

無人稼動のPCに再起動するようにスケジュール設定しているが、ちゃんと再起動しているか知りたいとの依頼があり vbs をつかってメールを送信するソフトを作った(というかネットを探しパーツを寄せ集めて合成した)


作成にあたって、

  • 遠隔からVNCで入るときにIPアドレスを使用するのでアドレスが何番か知りたい。
  • どのパソコンが再起動された知りたい。

と要望事項があったため、それぞれを表題と内容に記述した。

また、実行方法はスタートアップに入れた。

以下は作成したソースリスト  そのままでは動作せず、環境に応じて書き換えが必要
また、メール送信にBASP21.DLLを利用しているので、そちらを事前にインストールしておく
必要がある




'//===========================================================================
'//【ソフト名】 IPAddress.vbs   ver. 11.02.16 001
'//【対応環境】 Windows XP SP3 のみ検証済み
'//【注意事項】 動作には別途 BASP21 DLLが必要
'//===========================================================================

'*** 実行環境に応じて書き換えること ***
'書き方はBASP21のページを参照 http://www.hi-ho.ne.jp/babaq/basp21.html

CONST smtpServer = ""   '<--送信メールサーバー
CONST mailTo     = ""   '<--送信先メールアドレス
CONST mailFrom   = ""   '<--送信元メールアドレス

'******************************ここまで



'IPアドレスを取得する(複数ある場合は改行コードで分けられる)
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration " & _
    "Where IPEnabled = True")
For Each objItem in colItems
  For Each objAddress in objItem.IPAddress
    If objAddress <> "0.0.0.0" Then
      strIPAddress = strIPAddress & objAddress & vbcrlf
    End If
  Next
Next


'ドメイン名、コンピュータ名、ログインユーザー名を取得する
Set objNetWork = WScript.CreateObject("WScript.Network")
strUserDomain = objNetWork.UserDomain
strComputerName = objNetWork.ComputerName
strAccountInfo = objNetWork.UserName  



'メールを送信する
strServer = smtpServer
strTo = mailTo
strFrom = mailFrom
strSub = strAccountInfo & "@" & strComputerName
strBody = strIPAddress
strFile =""

Set bobj = CreateObject("basp21") 

result = bobj.SendMail(strServer,strTo,strFrom, strSub,strBody,strFile)

0 件のコメント:

コメントを投稿

デル株式会社

最近人気の投稿