Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] почтовый робот (http://forum.oszone.net/showthread.php?t=269145)

vova_kansk 02-10-2013 02:14 2227173

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

есть скрипт для получения почты от ingvar68 http://forum.script-coding.com/viewtopic.php?id=3196
с ним все хорошо он получает почту на сервере и валит все в одну папку (оргинал скрипта раскидывает по датам)

затем батничек подобный этому точнее он, но в нескольких экземплярах
http://forum.oszone.net/nextnewesttothread-242495.html
просматривает все это
растаскивает нужные письма по папкам и стартует нужные программы
остальная почта считается спамом и изничтожается
(вот здесь еще сортировщик очень понравилась реализация ini-файла в частности)

очень бы хотелось чуть допилить все это до более компактного
что он должен делать
необходимо зайти на почтовый сервер проверить есть ли почта
если есть то
посмотреть тему письма (чтоб не скачивать все письма и всякий спам, трафик большой)
если в теме письма есть "нужное слово1" то скачать и сохранить письмо на комп в папку1
если в теме письма есть "нужное слово2" то скачать и сохранить письмо на комп в папку2
если в теме письма "нужное слово3" то выполнить какунить команду1 (bat или vbs скрипт)
если в теме письма "нужное слово4" то выполнить какунить команду2 (bat или vbs скрипт)
и т.д.
...
удалить письмо с сервера
если остались еще письма повторить цикл

скрипт пихаем в планировщик он проверяет почту скажем каждые 15 мин
в итоге с любова девайса способного отправить почту мы можем управлять компом (скриптов выплняюшие какие либо действия на компе просто куча (у меня сделано динамический ip на почту сбросить, фотку с вэбки снять и послать на почту, записать 5 мин звука и отослать, ребутнуть модем, ребутнуть комп, даже форматнуть винт на всяк пожарный)
плюс сортировщик раскидает письма по темам
плюс спам фильтр

знающие люди помогите пожалуйста или ткните носом как сделать, я в скриптах не очень силен, очень очень надо

vova_kansk 07-10-2013 19:29 2230406

Код:

findstr /r /m /c:"^Subject: Text$" "ARXIV\*.eml" >nul && start "RoboPost" text.bat
запускает файл text.bat если в папке есть файл в котором содержится Subject: Text

как переименовать а лучше переместить файл в котором встретилось это слово

Код:

findstr /r /m /c:"^Subject: Text$" "ARXIV\*.eml"
дает список файлов в директории но не могу прикрутить эту конструкцию к ren или copy

Код:

ren findstr /r /m /c:"^Subject: Stop$" "*.eml" "*.txt"
дает ошибку синтаксиса

ПОМОГИТЕ !!!!!

Iska 08-10-2013 05:24 2230622

Не проверялось:
Код:

for /f "usebackq delims=" %%i in (`2^>nul findstr.exe /r /m /c:"^Subject: Text$" "ARXIV\*.eml"`) do move "%%~i" "Куда\"

vova_kansk 08-10-2013 08:29 2230641

да код сработал даже лутше чем надо, можно сортировать почтовые сообщения по разным папкам, а чтоб файлы не встречались по именам переименую в процесе переноса в число и дату

полный код выглядит так
Код:

for /f "usebackq delims=" %%i in (`2^>nul findstr.exe /r /m /c:"^Subject: Post$" "ARXIV\*.eml"`) do move "%%~i" "post\%date:~0,2%_%date:~3,2%_%date:~6,4%_%time:~0,2%_%time:~3,2%_%time:~6,2%.eml
СПАСИБО

vova_kansk 08-10-2013 09:18 2230648

возник другой вопрос почему строчка
echo WHERE_WE=Replace(VBS,"\" & VBS_NAME,"") >>POP_client.vbs

приводит не к созданию файла POP_client.vbs а к ошибке

WHERE_WE=Replace(VBS,"\"
"VBS_NAME" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

что значит знак & в команде echo

Iska 08-10-2013 11:42 2230701

Код:

echo WHERE_WE=Replace(VBS,"\" ^& VBS_NAME,"") >>POP_client.vbs
Цитата:

Цитата vova_kansk
что значит знак & »

Объединение нескольких команд в одной строке.

vova_kansk 08-10-2013 15:35 2230807

Вложений: 1
а всеравно не получилось vbs в батник запихать, но так тоже неплохо
итак что получилось

есть скрипт для получения почты от ingvar68 http://forum.script-coding.com/viewtopic.php?id=3196
с ним все хорошо он получает почту на сервере и валит все в одну папку (оргинал скрипта раскидывает по датам)
в скрипт надо прописать свой логин, пароль, POPсервер и порт
(некоторым может потребоватся MSWINSCK.ocx лежит в архиве)

есть батник который потом смотрит в эту папку и если
тема письма Text запускает text.bat
тема письма Start запускает start.bat
тема письма Stop запускает stop.bat
(в теме письма первая буква заглавная просто мне так удобнее, под себя пилите как хотите)
тема письма Post перетаскивает письмо в папку message попутно переименовывая
сохраняется лог последней сессии почтовика
все остальное изничтожается как спам

я не автор сего я просто собрал отдельные куски кода со всяких форумов под свою конкретную задачу посему низаче не отвечаю, гугл рулит
ВСЕМ СПАСИБО

пс : выяснился баг, если приходило несколько сообщений которые надо сохранить сохранялось только последнее, вроде исправил


Время: 19:20.

Время: 19:20.
© OSzone.net 2001-