Тема: VBS: CDO не получается отправить сообщение
Добрый день! С VBS знаком примерно неделю поэтому прошу сильно не ругать, если что не так.
Появилась необходимость написать скрипт который бы запускался через планировщик и пинговал заданные IP адреса. Если какой-то из хостов не овечает - отправляется на заданную почту сообщение, что такое событие имеет место быть.
Первая часть, работает правильно (делал проверку).
Вторая часть, которая по сути просто отправляет сообщение не работает,никак не могу понять почему. Почта находится на удаленном хостинге.
Сам код:
strComputer = "."
dim msg
Set objWMIService = GetObject(_
"winmgmts:\\" & strComputer & "\root\cimv2")
'Определение целевых IP-адресов
arrTargets = Array("192.168.1.100", "192.168.1.101", "192.168.1.102", "192.168.1.103", "192.168.1.104", "192.168.1.105")
'проверка каждого на доступность
For each IP in arrTargets
Set colPings = objWMIService.ExecQuery("Select * From Win32_PingStatus where Address = '" + IP + "'")
For Each objStatus in colPings
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
msg = msg &IP &vbcrlf
End if
Next
Next
'send massage
strMessage = "Неполадки в работе оборудования" & time & date &vbcrlf &msg
strTo= "mail1@domain.spb.ru"
strFrom="mail2@domain.spb.ru"
strSubject="Some error"
strAccountID="user_13"
strPassword="password"
strSMTPServer="smtp.hoster.ru"
SendMail strTo,strFrom,strSubject,strMessage,strAccountID,strPassword,strSMTPServer
'SendMassageFunction
Function SendMail( From, SendTo, Subject, Message , User, Password, SMTPServer )
Set oEmail = CreateObject("CDO.Message")
'configure message
With oEmail.Configuration.Fields
.item("....schemas.microsoft.com/cdo/configuration/sendusing") = 2
.item("....schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
.item("....schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.item("....schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic
.item("....schemas.microsoft.com/cdo/configuration/sendusername") = User
.item("....schemas.microsoft.com/cdo/configuration/sendpassword") = Password
.item("....schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Update
End With
' build message
With oEmail
.From = From
.To = SendTo
.Subject = Subject
.TextBody = Message
End With
' send message
On Error Resume Next
oEmail.Send
If Err Then
WScript.Echo "SendMail Failed:" & Err.Description
WScript.Quit
End If
End Function