Рабочий и проверенный вариант.
1. Открываем блокнот и вставляем следующий текст:
////////////////////////////////////////////////////////////////////////////
// JScript 20220217 shs
// Формирование и отправка на e-mail отчета "Консультатн+"
//
///////////////////////////////////////////////////////////////////////////
strPath2RootCons = "D:\\Consultant"; //Указываем свой абсолютный путь к корневой папке, в которую был установлен "Консультант+"
strPathFromRootCons = "RECEIVE"; //Относительный путь (относительно папки strPath2RootCons) к папке,
//в которой "Консультант+" создает файл cons*.USR
strFileMask = "^cons.+"; //Регулярное выражение для поиска файла,
//подлежащего отправке по электронной почте
mailaddrTo = "test@mail.ru"; //e-mail, на который будем отправлять письмо
//Проверяем существование в заданной папке файла,
//соответствующего шаблону, хранящемуся в strFileMask
strFileName=GetFileName(strPath2RootCons+"\\"+strPathFromRootCons,strFileMask);
if (strFileName=="") {
//если файл не существует, то его надо создать
//путем запуска CONS.EXE /usr /base*
WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run(strPath2RootCons+"\\cons.exe /usr /base*", 1, true);
}
//Снова проверяем наличие нужного нам файла (создался ли?)
strFileName=GetFileName(strPath2RootCons+"\\"+strPathFromRootCons,strFileMask);
if (strFileName!="") {
//Если файл найден, то отправляем его адресату
//по email
objEmail = WScript.CreateObject("CDO.Message"); //создаем объект CDO.Message
objEmail.From = "user@inbox.ru"; //адрес отправителя
objEmail.To = mailaddrTo; //адрес получателя
objEmail.BodyPart.CharSet = "windows-1251"; //задаем кодовую страницу сообщения
objEmail.Subject = "Название вашей организации"; //тема письма
objEmail.Textbody = "Файл отчета обновления Консультант";
objEmail.AddAttachment(strFileName); //добавляем к письму вложение: файл
//Зададим значения для полей конфигурации
with (objEmail.Configuration.Fields) {
Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2; //посылать сообщения по сети, используя SMTP
Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.inbox.ru"
Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465;
Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1; // используем basic authentication
Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user"; //имя пользователя
Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"; //пароль пользователя
Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1; //используем ssl
Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60; //таймаут
Update();
}
try {
objEmail.Send();
}
catch(e) {
WScript.Echo(e.number); //выводим номер ошибки
WScript.Echo(e.message); //выводим соощение об ошибке
}
//Функция, которая ищет в указанной папке файл, согласно заданной маске (маска задается в виде регулярного выражения)
//Если таковой файл находится в заданной папке, то функция вернет его полное имя, иначе — пустую строку
function GetFileName(strPath2File, strFileSpec)
{
//создаем объект FileSystemObject
var fso = new ActiveXObject("Scripting.FileSystemObject");
//создаем объект RegExp
var regexFileName= new RegExp (strFileSpec,"i");
//получаем объект — целевую папку
var objFolder = fso.GetFolder(strPath2File);
//получаем коллекцию файлов в целевой папке
var colFiles = new Enumerator (objFolder.Files);
var strFileName="";
//перебираем все файлы в коллекции
for(;!colFiles.atEnd();colFiles.moveNext()) {
//проверяем соответствие текущего файла заданному шаблону
if (regexFileName.test(colFiles.item().Name)) {
strFileName=colFiles.item();
}
}
return(strFileName);
}
}
Данные пути к папке консультант и настройки почты вводим свои.
Сохраняем файл с именем send_consultant и расширением .js.
Файл .js необходимо сохранить в кодировке windows-1251 иначе тема и текст письма будет приходить с кракозябрами вместо русских букв.
Для смены кодировки файла можно воспользоваться Notepad++.
Сохраняем send_consultant.js например на диск D.
2. Открываем блокнот и вставляем следующий текст:
D:/Consultant/cons.exe /adm /receive_inet /base* /yes /defbrowser /noproxy
D:/send_consultant.js
У себя проверьте правильность путей.
Сохраняем файл, например, с именем update_consultant и расширением .bat
3. Создаем задачу в Планировщике заданий, задаем частоту запуска и указываем путь к update_consultant.bat