Slanje pošte s vbs-a (VBScript)

Često administratori sustava koriste skripte u skripti Visual Basic Script (vbs) za nadgledanje različitih poslužitelja ili mrežnih usluga.

Dakle, preda mnom je bio zadatak pisanja skripte za nadziranje određenih događaja na poslužitelju i u slučaju da se oni pojave šalju poštu u administratorski poštanski sandučić.

Već sam opisao nekoliko načina slanja pošte (slanje pošte pomoću skripte na PowerShellu, e-poruku možete poslati i izravno iz naredbenog retka pomoću telneta). Međutim, s obzirom da je u trenutnom zadatku skripta praćenja napisana u vbs-u, bilo bi razumnije poslati e-poštu izravno iz vbs skripta. Kako poslati e-pošta od vbs?

Internet ima ogroman broj različitih skripti za slanje e-pošte s vbs-a (Visual Basic Script), ali problem je što velika većina njih koristi programska sučelja bilo Mapi (Outlook), bilo SMTP poslužitelja. I od tada Nisam instalirao Outlook na poslužitelj niti konfigurirao lokalne usluge SMTP poslužitelja, moji planovi nisu uključivali takve opcije skripte. slanje pošte s vbscript-a nije odgovarao.

Srećom, uspio sam pronaći normalnu skriptu za slanje e-pošta od vbs, što ne zahtijeva ništa instalirati na poslužitelj:

Funkcija sendMail () strSmtpServer = "msg-01" 'naziv poslužitelja pošte, u mom slučaju to je Exchange strSmtpPort = 25 strSmtpAuth = "ne" strSmtpSsl = "ne" strDate = datum strSendingEmail = "[email protected]"' Ime pošiljatelja strReport = "[email protected]" 'Ime primatelja' WScript.Echo logPath & "\ backup" & strDate & ".html" Postavi 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 Ako je strSmtpAuth = "da", tada objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo" / config / smtpauthenticate ") = 1" koristi "2" za NTLM provjeru autentičnosti 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 strSmtpSsl =" yes "Tada objMessage.Configuration.Fields. Stavka ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End ako je objMessage.Configuration.Fields.Update objMessage.Subject = "Subject email" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Tekst poruke" objMessage.Send End Function