Dość często administratorzy systemu używają skryptów w skrypcie Visual Basic Script (vbs) do monitorowania różnych serwerów lub usług sieciowych.
Tak więc przede mną było zadanie napisania skryptu do monitorowania niektórych zdarzeń na serwerze i na wypadek, gdyby wystąpiły, wysyłając pocztę do skrzynki pocztowej administratora.
Opisałem już kilka sposobów wysyłania poczty (wysyłając pocztę za pomocą skryptu w PowerShell, możesz również wysłać wiadomość e-mail bezpośrednio z wiersza poleceń za pomocą telnetu). Ponieważ jednak w bieżącym zadaniu skrypt monitorowania jest napisany w języku vbs, rozsądniej byłoby wysłać wiadomość e-mail bezpośrednio z kodu skryptu vbs. Jak wysłać e-mail z vbs?
Internet ma ogromną liczbę różnych skryptów do wysyłania e-maili z vbs (Visual Basic Script), ale problem polega na tym, że zdecydowana większość z nich korzysta z interfejsów programowych Mapi (Outlook) lub serwera SMTP. I odtąd Nie zainstalowałem programu Outlook na serwerze ani nie skonfigurowałem lokalnych usług serwera SMTP, moje plany nie obejmowały takich opcji skryptu wysyłanie poczty z vbscript nie pasowało.
Na szczęście udało mi się znaleźć normalny skrypt wysyłania e-mail z vbs, co nie wymaga instalowania niczego na serwerze:
Funkcja sendMail () strSmtpServer = "msg-01" 'nazwa serwera pocztowego, w moim przypadku jest to Exchange strSmtpPort = 25 strSmtpAuth = "no" strSmtpSsl = "no" strDate = data strSendingEmail = "[email protected]"' Nazwa nadawcy strReport = "[email protected]" 'Nazwa odbiorcy' WScript.Echo logPath & "\ backup" & strDate & ".html" Ustaw objMessage = CreateObject („CDO.Message”) objMessage.Configuration.Fields.Item („http: //schemas.microsoft.com/cdo/configuration/sendusing ") = 2 objMessage.Configuration.Fields.Item (" http://schemas.microsoft.com/cdo/configuration/smtpserver ") = strSmtpServer objMessage.Configuration.Fields .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = strSmtpPort Jeśli strSmtpAuth = "tak" Następnie objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo / configuration / smtpauthenticate ") = 1 'użyj' 2 'do uwierzytelnienia NTLM objMessage.Configuration.Fields.Item (" http://schemas.microsoft.com/cdo/config uration / sendusername ") = strSmtpUser objMessage.Configuration.Fields.Item (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") = strSmtpPass End If If strSmtpSsl =" tak "Następnie objMessage.Configuration.Fields. Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End If objMessage.Configuration.Fields.Update objMessage.Subject = "Temat e-maila" i strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Tekst wiadomości" objMessage.Send Funkcja końcowa