Odesílání pošty z VBS (VBScript)

Správci systému poměrně často používají skripty jazyka Visual Basic Script (vbs) ke sledování různých serverů nebo síťových služeb.

Takže přede mnou bylo úkolem napsat skript, který bude sledovat určité události na serveru a v případě, že dojde k odeslání pošty do poštovní schránky správce.

Již jsem popsal několik způsobů odesílání pošty (odesílání pošty pomocí skriptu na PowerShell, můžete také poslat e-mailovou zprávu přímo z příkazového řádku pomocí telnetu). Vzhledem k tomu, že monitorovací skript je však v aktuálním úkolu psán ve vbs, bylo by rozumnější poslat e-mail přímo z kódu skriptu vbs. Jak poslat e-mail od vbs?

Internet má obrovské množství různých skriptů pro odesílání e-mailů z vbs (Visual Basic Script), ale problém je v tom, že velká většina z nich používá programová rozhraní serveru Mapi (Outlook) nebo SMTP. A od té doby Nainstaloval jsem Outlook na server ani nenakonfiguroval místní serverové služby SMTP, moje plány takové možnosti skriptu neobsahovaly odesílání pošty z vbscriptu nezapadalo.

Naštěstí se mi podařilo najít normální vysílací skript e-mail od vbs, což nevyžaduje instalaci nic na server:

Funkce sendMail () strSmtpServer = "msg-01" 'název poštovního serveru, v mém případě je to Exchange strSmtpPort = 25 strSmtpAuth = "no" strSmtpSsl = "no" strDate = date strSendingEmail = "[email protected]"' jméno odesílatele strReportE = "[email protected]" 'Jméno příjemce' 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 Pokud strSmtpAuth = "yes" Potom objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo / configuration / smtpauthenticate ") = 1 'use' 2 'pro NTLM autentizaci 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 = "Předmět e-mailu" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Text zprávy" objMessage.Send End Function