title: Ping script with email in vbs
body: <p>i know i asked already the question about the ping script but now i have a new question about it :-) I hope someone can help me again.</p>
  
  <pre><code>strText = "here comes the mail message"
  
  strFile = "test.log"
  
  PingForever strHost, strFile
  
  Sub PingForever(strHost, outputfile)
      Dim Output, Shell, strCommand, ReturnCode
  
      Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile(outputfile, 8, True)
      Set Shell = CreateObject("wscript.shell")
      strCommand = "ping -n 1 -w 300 " &amp; strHost
      While(True)
          ReturnCode = Shell.Run(strCommand, 0, True)     
          If ReturnCode = 0 Then
              Output.WriteLine Date() &amp; " - " &amp; Time &amp; " | " &amp; strHost &amp; " - ONLINE"
          Else
              Output.WriteLine Date() &amp; " - " &amp; Time &amp; " | " &amp; strHost &amp; " - OFFLINE"
  
              Set objEmail = CreateObject("CDO.Message")
              objEmail.From = "noreply@test.net"
              objEmail.To = "test@test.net"
              objEmail.Subject = "Computer" &amp; strHost &amp; " is offline" 
              objEmail.Textbody = strText
              objEmail.Configuration.Fields.Item _
                  ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
              objEmail.Configuration.Fields.Item _
                  ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
                      "smtpadress" 
              objEmail.Configuration.Fields.Item _
                  ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
              objEmail.Configuration.Fields.Update
              objEmail.Send
  
          End If
          Wscript.Sleep 2000
      Wend
  End Sub
  </code></pre>
  
  <p>My problem is now, the mail comes all 2 seconds, when the computer are offline. Can someone show me how to make it with flags? So only one mail comes when its offline?</p>
  
  <p>Thanks for your help.</p>