Доста често системните администратори използват скриптове в скрипта Visual Basic Script (vbs), за да наблюдават различни сървъри или мрежови услуги.
И така, преди мен имаше задачата да напиша скрипт, за да наблюдавам определени събития на сървъра и в случай, че възникнат изпращане на поща до пощенската кутия на администратора.
Вече описах няколко начина за изпращане на поща (изпращане на поща чрез скрипт в PowerShell; можете също да изпратите имейл съобщение директно от командния ред, използвайки telnet). Въпреки това, тъй като в текущата задача скриптът за наблюдение е написан в vbs, би било по-разумно да изпратите имейл директно от кода на скрипта vbs. Как да изпратя имейл от vbs?
Интернет има огромен брой различни скриптове за изпращане на имейли от vbs (Visual Basic Script), но проблемът е, че по-голямата част от тях използват програмните интерфейси или на Mapi (Outlook), или на SMTP сървър. И оттогава Не инсталирах Outlook на сървъра или не конфигурирах локалните SMTP сървърни услуги, плановете ми не включваха такива опции за скрипт изпращане на поща от vbscript не пасваше.
За щастие успях да намеря нормален скрипт за изпращане имейл от vbs, което не изисква инсталиране на нищо на сървъра:
Функция sendMail () strSmtpServer = "msg-01" 'името на пощенския сървър, в моя случай това е Exchange strSmtpPort = 25 strSmtpAuth = "не" strSmtpSsl = "не" strDate = дата strSendingEmail = "[email protected]"' Име на подателя strReport = "[email protected]" 'Име на получател' WScript.Echo logPath & "\ backup" & strDate & ".html" Задайте 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 Ако strSmtpAuth = "да" Тогава objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo" / config / smtpauthenticate ") = 1" използвайте "2" за 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 "Тогава objMessage.Configuration.Fields. Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End Ако objMessage.Configuration.Fields.Update objMessage.Subject = "Тема на имейла" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Текст на съобщението" objMessage.Send End Function