Posielanie pošty z VBS (VBScript)

Pomerne často správcovia systému používajú skripty v skripte Visual Basic Script (vbs) na monitorovanie rôznych serverov alebo sieťových služieb..

Takže predo mnou bolo úlohou napísať skript na sledovanie určitých udalostí na serveri a v prípade, že dôjde k odoslaniu pošty do poštovej schránky správcu.

Už som opísal niekoľko spôsobov posielania pošty (posielanie pošty pomocou skriptu na serveri PowerShell, e-mailovú správu môžete odoslať aj priamo z príkazového riadku pomocou telnetu). Pretože však v súčasnej úlohe je monitorovací skript napísaný vo vbs, bolo by rozumnejšie poslať e-mail priamo z kódu skriptu vbs. Ako poslať e-mail od vbs?

Internet má obrovské množstvo rôznych skriptov na odosielanie e-mailov z vbs (Visual Basic Script), ale problém spočíva v tom, že veľká väčšina z nich používa programové rozhrania buď Mapi (Outlook) alebo SMTP servera. A od tej doby Nainštaloval som program Outlook na server alebo nenakonfiguroval služby miestneho servera SMTP. Moje plány takéto možnosti skriptov neobsahovali odosielanie pošty z vbscriptu nezmestili sa.

Našťastie sa mi podarilo nájsť normálny skript na odosielanie e-mail od vbs, ktoré nevyžaduje inštaláciu ničoho na server:

Funkcia sendMail () strSmtpServer = "msg-01" 'názov poštového servera, v mojom prípade je to Exchange strSmtpPort = 25 strSmtpAuth = "no" strSmtpSsl = "no" strDate = date strSendingEmail = "[email protected]"' meno odosielateľa strReportEmail = "[email protected]" 'Meno príjemcu' WScript.Echo logPath & "\ backup" & strDate & ".html" Set 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 If strSmtpAuth = "yes" Potom objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo / configuration / smtpauthenticate ") = 1 'use' 2 'pre NTLM autentifikáciu 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 =" yes "Potom objMessage.Configuration.Fields. Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End If objMessage.Configuration.Fields.Update objMessage.Subject = "Predmet e-mailu" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Text správy" objMessage.Send End End Function