Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отправка скриншота на email

Ответить
Настройки темы
CMD/BAT - [решено] Отправка скриншота на email

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: andrew_gurylyov@vk
Дата: 22-02-2012
Здравствуйте. Помогите, пожалуйста, написать батник. Не обессудьте, если задача слишком сложна или же проста, я батниками пока умею лишь копировать ><

Суть задачи:

Есть папка со скриншотами, например, C:\Dropbox\Public\img\
В ней время от времени (после нажатия PrintScreen) появляются картинки. Их имена имеют одинаковое начало, например, Capture и одинаковый формат: .JPEG. Единственное их отличие - нумерация. Соответственно, файлы выглядят следующим образом: Capture1.JPEG, Capture2.JPEG, Capture3.JPEG и т.д. При появлении новых файлов должен запускаться батник, лежащий в любом месте, например, в папке с этими файлами. Его автоматически запустит программа (Auto Screenshot Maker), которая делает скриншоты после того, как сохранит скриншот. В самом батнике адрес к папке должен преобразовываться из C:\Dropbox\Public\img\ в http://dl.dropbox.com/u/1033383/img/
Дальше самое сложное, вроде бы, что я вообще не понимаю, как сделать: батник должен определять последний файл в папке (то есть файл с наибольшим числом после Capture), добавлять его к адресу, чтобы получилось, например, http://dl.dropbox.com/u/1033383/img/Capture1.JPEG и отправлять его на почтовый ящик, например, example@example.com
Желательно, чтоб функционал этого батника был в .exe, а-то я что-то сомневаюсь, что программа запустит иные форматы.
Помогите, пожалуйста, я очень нуждаюсь в вашей помощи! Заранее безмерно благодарен!

Отправлено: 13:22, 22-02-2012

 

Старожил


Сообщения: 414
Благодарности: 258

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar compiled.rar
(102.9 Kb, 121 просмотров)

Сам скрипт:
Код: Выделить весь код
@Echo Off
For /F "eol=# delims== tokens=1,2 usebackq" %%A In ("config.ini") Do (Set %%A=%%B)
For /F "delims=" %%F In ('Dir "%WorkDir%\Capture*.jpeg" /A:-D /B /O:-D') Do (
blat.exe -server %Server% -u %Login% -pw %Password% -subject "Screenshot" -body "http://dl.dropbox.com/u/%ID%/img/%%F " -to %EMail% -f %Login% -attach "%WorkDir%\%%F">nul
Exit
)
Его файл настроек, config.ini
Код: Выделить весь код
# Директория со скриншотами
WorkDir=C:\Dropbox\Public\img
# ID дропбокс-юзера
Set ID=1033383
# Получатель
EMail=guest@mail.ru
# Почтовый сервер для отправки
Server=smtp.mail.ru
# Логин
Login=script.backup@mail.ru
# Пароль к ящику
Password=test123
При запуске определяет последний добавленный файл, шлет на указанный ящик ссылку на него в public дропбокса и сам файл в аттаче письма. Данные поменяете на свои, сейчас там тестовый ящик для отправки используется. К скрипту нужна утилита blat, которая может отправлять почту из командной строки.
Во вложении к этому посту - уже откомпилированный в exe скрипт со всеми нужными вложениями и конфигурационный файл, если захотите сами откомпилировать - используйте этот конвертер, и не забудьте вложить blat.exe, blat.lib и blat.dll.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:32, 22-02-2012 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Вау! Не ожидал такой быстрой реакции! Спасибо огромное!

Потестил... почему-то не отправляет. Ни с моего компа, ни с ещё одного. Все данные введены верно, проверил несколько раз. В чём может быть проблема, не подскажете?

Как оно происходит: запускаю файл, он распаковывает блат, видимо, отправляет, файлы блат снова пропадают. Вероятно, больше ничего и не должно быть. Но во входящих как ничего не было, так и нет. Оба почтовые ящики - гугловские. Сервером указан smtp.gmail.com. В настройках гугла у обоих ящиков разрешены IMAP и POP. Также на всякий случай выключены фаерволы.
p.s. также была отключена функция smtp на уровне провайдера у обоих компьютеров, включил в личном кабинете и переподключился к интернету - безрезультатно.

Отправлено: 16:36, 22-02-2012 | #3


Старожил


Сообщения: 414
Благодарности: 258

Профиль | Отправить PM | Цитировать


Проверьте на всякий случай, указав отправляющим ящиком именно тот, тестовый, на mail.ru, с паролем test123. С gmail я не проверял, подозреваю, что там надо принудительно порт указывать.
У меня локально всё отработало, вот:

Я не могу воспроизвести вашу проблему с неотправкой письма (пробовал на xp sp3 и winserver 2008), соответственно, и подсказать, как ее решить, тоже не могу.

Отправлено: 17:04, 22-02-2012 | #4


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Anonymоus, да, похоже, нужно принудительно порт указывать, в гугл-инструкциях указано (POP, IMAP).
С вашими данными всё замечательно отправляется.
В принципе, так как всё отправляется, проблему можно считать решённой. Но если вы всё-таки подскажете, как отправить гугловской почтой, будет совсем здорово, ибо компьютеров у меня несколько (3: мать, отец и сестра, мой не в счёт) и было бы здорово отличать не только по скриншоту, с которого приходит письмо, а почта у всех гугловская.

Отправлено: 17:24, 22-02-2012 | #5


Старожил


Сообщения: 414
Благодарности: 258

Профиль | Отправить PM | Цитировать


andrew_gurylyov@vk, после непродолжительных поисков в интернете выяснилось, что логин в Gmail производится исключительно через SSL, чего blat "из коробки" не умеет делать. Для этого нужна дополнительная программа Stunnel. Вам проще будет сделать несколько копий config.ini с разными не-gmail отправляющими ящиками (получателем может быть и gmail).

Кстати, я заметил ошибку - замените в config.ini строку Set ID=1033383 на ID=1033383, без Set

UPD: Если всё же захотите использовать gmail, вот тут есть статья о настройке stunnel
http://slaviksg.narod.ru/texts/smtpgmail.htm
Скрипт в таком случае, придется немножко подправить (добавить -port 465 к аргументам blat) и откомпилировать заново.

Отправлено: 17:42, 22-02-2012 | #6


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Может быть, вы подскажете, как через Stunnel сделать? По идее, на эти компьютеры сколько угодно чего угодно ставить можно

Отправлено: 17:51, 22-02-2012 | #7


Старожил


Сообщения: 414
Благодарности: 258

Профиль | Отправить PM | Цитировать


Вот же, снизу шестого сообщения ссылка. Я только что сам нашел эту страницу в поисковике, так что сомневаюсь, что обьясню вам лучше, чем там описано.

Отправлено: 17:57, 22-02-2012 | #8


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: rar compiled.rar
(647.8 Kb, 20 просмотров)

И снова не получается(
Я даже завёл новую почту на имя Blat Stunnel.

Как вы посоветовали:
Код: Выделить весь код
blat.exe -port 465 -u %Login% -pw %Password% -subject "Screenshot" -body "http://dl.dropbox.com/u/%ID%/img/%%F " -to %EMail% -f %Login% -attach "%WorkDir%\%%F">nul
Первый отличный от вашего вариант
Код: Выделить весь код
blat.exe -serverSMTP 127.0.0.1 -port 465 -try 1 -u %Login% -pw %Password% -subject "Screenshot" -body "http://dl.dropbox.com/u/%ID%/img/%%F " -to %EMail% -f %Login% -attach "%WorkDir%\%%F">nul
Второй
Код: Выделить весь код
blat.exe -serverSMTP 127.0.0.1 -portSMTP 465 -try 1 -u %Login% -pw %Password% -subject "Screenshot" -body "http://dl.dropbox.com/u/%ID%/img/%%F " -to %EMail% -f %Login% -attach "%WorkDir%\%%F">nul
Вариант, как в статье
Код: Выделить весь код
blat.exe -serverSMTP 127.0.0.1 -portSMTP 1099 -u %Login% -pw %Password% -subject "Screenshot" -body "http://dl.dropbox.com/u/%ID%/img/%%F " -to %EMail% -f %Login% -attach "%WorkDir%\%%F">nul
Все эти варианты не заработали(

Отправлено: 19:02, 22-02-2012 | #9


Старожил


Сообщения: 414
Благодарности: 258

Профиль | Отправить PM | Цитировать


andrew_gurylyov@vk, если честно, не хочется возиться с этим stunnel - его устанавливать нужно ещё, запускать как службу. У вас jabber-аккаунт есть? Могу помочь с отправкой уведомлений на любой jabber-аккаунт, только не на серверах google. Jabber.ru например, или яндексовский.

Ещё одна из причин, по которой могло не заработать - у вас в ini-файле логин записан, как Login=blatstunnel@mail.ru

Отправлено: 20:06, 22-02-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отправка скриншота на email

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - cmd определение ip и отправка на email exekill Скриптовые языки администрирования Windows 1 15-01-2012 17:40
V. 2010 - [решено] Отправка email средствами sql server 2005 через exchange VladDV Microsoft Exchange Server 2 12-08-2011 12:58
Разное - Программа для скриншота с веб-камеры DIKPro Microsoft Windows 7 22 05-08-2011 03:53
[решено] Отправка Email с авторизацией на сервере средствами AutoIt WIFI AutoIt 2 26-03-2010 15:06
Создание скриншота morgan1991 AutoIt 0 19-02-2010 22:43




 
Переход