|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Помогите новичку разобраться со скриптом(vbs). |
|
|
VBS/WSH/JS - Помогите новичку разобраться со скриптом(vbs).
|
|
Новый участник Сообщения: 12 |
Есть код. Украденный с кого то форума. Я честно пытался разобраться несколько дней, но ничего не вышло, он не работает даже в оригинальной версии.
Суть такова: скрипт должен проверять последние изменение в файле (дату или время) сопоставлять с текущем временем и если это время на 20 часов или 1 день меньше настоящего, то отправлять сообщение по внешней почте, в моем случае маил. Dim objFSO, objFile, strFilePath, lngDifference
strFilePath = "с:\text.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.fileexists(strFilePath)
Then ExitScript()
Set objFile = objFSO.getfile(strFilePath)
lngDifference = DateDiff("h", objFile.DateLastModified, Now)
If CLng(lngDifference) < 20 Then
MsgBox "разница: " & lngDifference, ,"не посылать письмо"
ExitScript()
Else MsgBox "разница: " & lngDifference, ,"послать письмо"
'SendMail()
ExitScript()
End If Sub
ExitScript()
MsgBox "выход"
Set objFile = Nothing
Set objFSO = Nothing
Wscript.quit
End Sub
Sub SendMail()
Const cdoSendUsingPickup = 1
Set objMessage = CreateObject("CDO.Message")
objMessage.emailFrom = "******@mail.ru"
objMessage.Subject = "тема"
objMessage.From = emailFrom
objMessage.To = "***@al.ru"
objMessage.TextBody = "текст"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru" objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = emailFrom objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"
objMessage.Configuration.Fields.Update
objMessage.Send
End Sub
1. Чего я вообще понять не могу это с письмом, оно отправляться вообще не хочет, даже когда отдельным скриптом пишу, может быть дело в mail.ru? 2. Как видно из кода, сначала проверяем разницу (всплывает окно), потом отправляем или нет (всплывает окно), так вот проверка работает отлично, но второе окно не всплывает, вместо него вылетает пустое с надписью "выход". |
|
|
Отправлено: 10:15, 15-03-2013 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Vector101:
![]() Dim objFSO, objFile, strFilePath, lngDifference
strFilePath = "C:\text.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.fileexists(strFilePath) Then ExitScript()
Set objFile = objFSO.getfile(strFilePath)
lngDifference = DateDiff("h", objFile.DateLastModified, Now)
If CLng(lngDifference) < 20 Then
MsgBox "разница: " & lngDifference, ,"не посылать письмо"
ExitScript()
Else
MsgBox "разница: " & lngDifference, ,"послать письмо"
SendMail()
ExitScript()
End If
Sub ExitScript()
MsgBox "выход"
Set objFile = Nothing
Set objFSO = Nothing
Wscript.quit
End Sub
Sub SendMail()
Const EmailFrom = "gora***@list.ru" ' от кого будет отправляться e-mail
Const EmailPassword = "12345678" ' пароль от e-mail
Const strSmtpServer = "smtp.list.ru" ' smtp сервер
Const EmailTo = "gora***@list.ru" ' кому будет отправляться e-mail
Set objEmail = CreateObject("CDO.Message")
objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.Subject = "Здесь должен быть текст заголовка"
objEmail.Textbody = "Текста Вашего письма"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
End Sub
|
|
|
Отправлено: 13:57, 15-03-2013 | #2 |
|
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать т.е. получается нужно было кое где поставить пробелы и табуляцию?)
Однако по конкретно вашему коду новая ошибка, проблема с выводом второго окна не решена (письмо слать или не слать) - это не столь важно, главное что работает. Но зато я теперь уверен что при выполнение нужных условий он пытается отправить. А с почтой тоже самое Когда делаю отдельным скриптом - ошибки нет, но и письма нет, а вот в этой общей картине ругаеться на 44 строку, 2 символ, код ошибки 80040213 ( objEmail.Send) - вот эта буква "о" получается. |
|
Отправлено: 14:53, 15-03-2013 | #3 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Vector101:
Цитата Vector101:
Цитата Vector101:
Цитата Vector101:
Цитата Vector101:
Цитата Vector101:
Лишние концевые пробелы во всех строках Переменная emailFrom вовсе не определена. |
||||||
|
Последний раз редактировалось gora, 15-03-2013 в 16:08. Отправлено: 15:40, 15-03-2013 | #4 |
|
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Огромное Вам спасибо gora! Все работает на 25ом порте. Что самое интересное - это то что я эти настройки проверял 100500 раз, на самом mail.ru!!! Уж не знаю в чем беда, но теперь все работает!
СПАСИБО!!!!! |
|
|
Отправлено: 16:08, 15-03-2013 | #5 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| VBS/WSH/JS - Помогите с VBS скриптом | coptercor | Программирование и базы данных | 2 | 21-09-2011 08:48 | |
| MSFT SQL Server - Помогите со скриптом | e2site | Программирование и базы данных | 2 | 06-05-2009 02:34 | |
| VBS/WSH/JS - Проблема со скриптом VBS! | voler | Программирование и базы данных | 5 | 19-06-2007 14:38 | |
| Помогите разобраться новичку | Indi | Видео и аудио: обработка и кодирование | 5 | 17-02-2007 09:42 | |
| Проблема со скриптом на VBS | UnDetect | Microsoft Windows NT/2000/2003 | 0 | 14-04-2006 13:26 | |
|