вторник, 17 апреля 2018 г.

Отправка сообщения через smtp сервер

'Данный скрипт копирует получает на вход аргумент в виде имени базы данных
'и отправляет сообщение на почту письмо с тем, что файл с именем базы данных не найден

Set objArgs = WScript.Arguments

Set myMail=CreateObject("CDO.Message")
myMail.Subject="Ошибка копирования бэкапа БД на удаленный сервер"
myMail.From="from@mail.ru"
myMail.To="to@mail.ru"
myMail.TextBody="Не найден файл " + objArgs(0) + " резервной копии БД в каталоге бэкапов для копирования на удаленный сервер"
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2

'Name or IP of remote SMTP server
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="mail.test.ru"

'порт smtp сервера
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=587

'Отправка с аутентификацией
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "sender@mail.ru"
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "12345678"

myMail.Configuration.Fields.Update
myMail.Send
set myMail=nothing

'Командная строка для запуска данного скрипта:
'cscript.exe <Имя файла скрипта> <FileName>

вторник, 9 января 2018 г.

Рекурсивный обход папок

'Создаём и запускаем диалог выбора корневой папки
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Select a folder:", 0)
'Если пользователь не выбрал папку, завершаем приложение
If objFolder Is Nothing Then Wscript.Quit
'Получаем путь к выбранной папке
objPath = objFolder.Self.Path
'Создаем объект папки файловой системы
'и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders FSO.GetFolder(objPath)
'Сигнализируем о завершении программы
Wscript.Echo "Завершено в " & objPath
'Функция рекурсивного обхода папок
Sub ShowSubFolders(Folder)
'Перебираем подпапки
 For Each Subfolder in Folder.SubFolders
'В каждой подпапке Subfolder делаем нужное нам черное дело
'Например, выводим её имя
   Wscript.Echo Subfolder.Name
'Рекурсивно вызываем функцию для подпапок текущей папки
   ShowSubFolders Subfolder
  Next
End Sub