Спасибо товарищу Just который дал кусок кода для проверки разницы текущего времени с временем модификации.
- Код: Выделить всё
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.getfile("c:\11.xls")
Diff = DateDiff("n", f.DateLastModified, Now)
'Diff = DateDiff("n", f.DateCreated, Now)
'Diff = DateDiff("n", f.DateLastAccessed, Now)
'yyyy — Год
'm — Месяц
'd — День
'h — Часы
'n — Минуты
If Diff > 3 Then
msgbox "письмо"
'Отправить сообщение с помощью локальной службы SMTP
Const cdoSendUsingPickup = 1
Set objMessage = CreateObject("CDO.Message")
' Тема сообщения и адрес отправителя
objMessage.Subject = "Тема письма"
objMessage.From = "monitoring@domain.com"
' Получатели письма указываются через " ; "
objMessage.To = "admin-group@domain.com"
' Содержимое тела письма.
objMessage.TextBody = "Тело письма"
' Добавляем файл - вложение для отправки отчета по EMail
objMessage.AddAttachment "C:\11.xls"
' Секция настроек SMTP сервера для отправки почты.
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
' Имя или IP адрес SMTP Server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.0.2"
' Тип используемой авторизации, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = NTLM
' SMTP server
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.domain.com"
' Авторизация на SMTP server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "monitoring@domain.com"
' Пароль SMTP server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
' Порт SMTP Server port (обычно 25, но может быть и другим)
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
' Использование SSL для соединения (False или True)
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
' Время ожидания соединения с почтовым сервером
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
' Сохранить настройки CDO для отправки сообщения
objMessage.Configuration.Fields.Update
' Отправить созданное почтовое сообщение с вложением по указанному адресу
objMessage.Send
Wscript.Quit
На данный момент этот скрипт высылает почту в любом случае. Прошу покажите, где ошибка. Нужно, чтобы скрипт высылал почту только в том случае, если фаил не изменялся последние 3 минуты. Подобного данному скрипта в интернете я не нашел. Это необходимо для мониторинга. Подобной программы, в которой реализуется данный метод проверки и оповещения при заданных параметрах я не нашел. Спасибо за ответы.
Возможно нужно подругому его скомпоновать, или по другому вызывать отправку письма. Не знаю, что и делать. Гугл не хочет мне помогать.
С уважением, WestSouthnight.