Categories: Exchange

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

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

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

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

В паутине интернета находится огромное количество всевозможных скриптов для отправки электронной почты из 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
admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago