Отправка почты из vbs (VBScript)

Отправка почты из vbs (VBScript)

Достаточно часто системные администраторы для мониторинга различных серверов или сетевых служб используют скрипты на языке сценариев Visual Basic Script (vbs).

Вот и передо мной возникла задача написания скрипта для мониторинга определенных событий на сервере и в случае их наступления отправки почты на почтовых ящик администратора.

Я уже описывал несколько способов отправки почты (отправка почты при помощи скрипта на PowerShell, также почтовое сообщение можно отправить прямо из командной строки при помощи telnet). Однако так как в текущей задача скрипт мониторинга написан на vbs, то и разумнее бы было отправлять письмо прямо из кода скрипта vbs. Как же отправить email из vbs?

отправка email из vbs (vbscript)

В паутине интернета находится огромное количество всевозможных скриптов для отправки электронной почты из vbs (Visual Basic Script), однако проблема в том, что подавляющее большинство из них используют программные интерфейсы либо Mapi (Outlook), либо SMTP сервера. А т.к. ни устанавливать Outlook на сервер, ни настраивать службы локального SMTP сервера, в мои планы не входило, такие варианты скриптов отправки почты из vbscript не подходили.

К счастью, удалось найти нормальный скрипт отправки email из vbs, который не требует установки чего бы то ни было на сервер:

Function sendMail() strSmtpServer="msg-01" ' имя почтового сервера, в моем случае это Exchange strSmtpPort=25 strSmtpAuth="no" strSmtpSsl="no" strDate=date strSendingEmail="[email protected]" ' Имя отправителя strReportEmail="[email protected]" ' Имя получателя '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" Then objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'use '2' for NTLM authentication objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = strSmtpUser objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strSmtpPass End If If strSmtpSsl = "yes" Then objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True End If objMessage.Configuration.Fields.Update objMessage.Subject = "Тема письма" & strDate & "." objMessage.From = strSendingEmail objMessage.To = strReportEmail objMessage.HTMLBody = "Текст сообщения" objMessage.Send  End Function

Qiziqarli malumotlar
Отправка почты из vbs (VBScript)