Pošiljanje pošte iz vbs (VBScript)

Pogosto sistemski skrbniki uporabljajo skripte v skriptu Visual Basic Script (vbs) za spremljanje različnih strežnikov ali omrežnih storitev.

Pred menoj je bila naloga pisanja skripta za spremljanje določenih dogodkov na strežniku in v primeru, da pride do pošiljanja pošte v skrbnikov nabiralnik..

Opisal sem že več načinov pošiljanja pošte (pošiljanje pošte s skriptom na PowerShell, e-poštno sporočilo lahko pošljete tudi neposredno iz ukazne vrstice s pomočjo telneta). Ker pa je v trenutni nalogi skript za spremljanje napisan v vbs, bi bilo bolj smiselno poslati e-pošto neposredno iz kode skripta vbs. Kako poslati e-pošta od vbs?

Internet ima ogromno različnih skript za pošiljanje e-poštnih sporočil iz vbs (Visual Basic Script), težava pa je v tem, da jih velika večina uporablja programske vmesnike bodisi Mapi (Outlook) bodisi strežnika SMTP. In od takrat Nisem namestil Outlooka na strežnik ali konfiguriral lokalnih storitev strežnika SMTP, moji načrti niso vključevali takšnih možnosti skripta pošiljanje pošte iz vbscript ni ustrezala.

Na srečo mi je uspelo najti običajen scenarij za pošiljanje e-pošta od vbs, za kar ni treba namestiti ničesar na strežnik:

Funkcija sendMail () strSmtpServer = "msg-01" 'ime poštnega strežnika, v mojem primeru je Exchange strSmtpPort = 25 strSmtpAuth = "ne" strSmtpSsl = "ne" strDate = datum strSendingEmail = "[email protected]"' Pošiljatelj ime strReport = "[email protected]" "Ime prejemnika" WScript.Echo logPath & "\ backup" & strDate & ".html" Nastavite 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 = "da" Potem objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo" / config / smtpauthenticate ") = 1" uporabite "2" za overjanje 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 strSmtpSsl =" yes ", nato objMessage.Configuration.Fields. Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End Če je objMessage.Configuration.Fields.Update objMessage.Subject = "Zadeva po e-pošti" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Besedilo sporočila" objMessage.Send End Function