Показано с 1 по 4 из 4

Тема: Автоматический запуск файла из почты

  1. #1
    Oleg_RON
    Oleg_RON вне форума
    Новичок
    Регистрация
    17.08.2012
    Сообщений
    2

    Автоматический запуск файла из почты

    Добрый день.
    Задача такая: нужно чтобы входящее письмо с определённой темой обрабатывалось. А именно запускался прикреплённой файл к письму.

  2. #2
    Yurek
    Yurek вне форума
    Участник
    Регистрация
    31.05.2012
    Адрес
    Санкт-Петербург
    Сообщений
    105
    Уточните, какого рода файл запускается. Расширение, тип. Есть ли другие прикреплённые файлы кроме запускаемого.

  3. #3
    Oleg_RON
    Oleg_RON вне форума
    Новичок
    Регистрация
    17.08.2012
    Сообщений
    2
    нужно запустить файл с расширением bat или cmd.

  4. #4
    Yurek
    Yurek вне форума
    Участник
    Регистрация
    31.05.2012
    Адрес
    Санкт-Петербург
    Сообщений
    105
    Проверил на bat-файле - работает.
    Код:
    $$$$ TB! Message Filter $$$$
    beginFilter
    UID: [DED52FC7.01CD7E99.792E5934.358F1209]
    Name: run_bat
    Filter: {\0D\0A\20`2`0`test11\0D\0A}
    ExtractFiles IncrementName AutoPath dir C:\5Ctemp dirRelative %EXEDRIVE%\5Ctemp
    RunExternal Wait CmdLine cmd\20/C\20c:\5Ctemp\5C%oAttachments
    RunExternal Wait CmdLine cmd\20/C\20del\20c:\5Ctemp\5C%oAttachments
    IsContinue
    IsActive
    Ignore
    endFilter

    Выделяете эти строки фильтра, копируете в буфер обмена, вставляете в фильтры Incoming mail (фокус должен быть на этой папке). Далее меняете признак фильтрации, так как у меня ради отладки сортировка происходила по теме сообщения "test11", а у Вас будет что-то другое. Папку куда прикреплённый файл будет "падать", тоже выберите самостоятельно. Как запускать без записи файла на диск - не знаю.
    Попробуйте, возможно с CMD-файлами тоже прокатит. Фактически надо просто письмо с таким файлом подсунуть, фильтр тот же.

    Немного позже он дописал…
    Проверил с CMD - тоже работает.
    Слегка улучшил фильтр переместив временную папку на диск C:\temp, так как при отсутствии диска с именем D: (которое было указано в фильтре), Бат заменяет его на другое, используя значение %EXEDRIVE%. Из этого следует, что в фильтре надо указывать реально существующий диск, иначе файл запишется в одно место, а запуск на выполнение будет производится из другого.
    Ещё одна тонкость - может возникнуть коллизия на почве совпадения имени файла с именами в последующих письмах. Суть коллизии состоит в том, что если в фильтре "Извлечь" указать "Изменить имена, если уже существуют", то к имени файла в конце добавится (n), где n - порядковый номер. Скажем, есть в папке файл Hello.bat, тогда второй обзовётся Hello(1).bat, ну и так далее. А самое главное - в последующей команде cmd /C c:\temp\%oAttachments будет исполнен файл Hello.bat. Такие вот дела.

    Это можно обойти несколькими способами:

    1. Указать в фильтре "Извлечь прикреплённый файл" параметр - "Записать поверх существующео файла".
    Тогда файл всегда будет исполняться из последнего письма. Плохо тем, что файл будет затираться более новым. Если он нужен, то надо предусмотреть его сохранение.

    2. Добавить в фильтр последней строкой действие - cmd /C del c:\temp\%oAttachments. При этом рекомендуется в предшествующем вызове командного файла на исполнение поставить галочку "Дождаться завершения исполнения", иначе не знаю как будет работать. Файл исполняется, а его другой процесс будет пытаться удалить…хз чего будет.
    В итоге, файл будет сушествовать на диске лишь некоторое время и по завершении выполнения будет удалён. Что будет когда сразу несколько писем пришло и во всех файл с одинаковым именем - не проверял.

    В данном сообщении фильтр сделан по варианту п.2. Можно легко поменять на п.1.
    --
    Успехов!
    Последний раз редактировалось Yurek; 20.08.2012 в 11:29. Причина: Про CMD добавил…как-то странно тут сообщения обновляются - то да, то нет, то с задержкой..

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 27.08.2012, 02:12
  2. Автоматический выбор ПЯ
    от Asker в разделе The Bat!: вопросы и ответы
    Ответов: 4
    Последнее сообщение: 20.06.2005, 14:38
  3. Автоматический прием почты.
    от dizel в разделе The Bat!: вопросы и ответы
    Ответов: 2
    Последнее сообщение: 12.06.2003, 17:10
  4. Автоматический backup почтового ящика
    от Syd в разделе Архив первого форума
    Ответов: 1
    Последнее сообщение: 08.08.2002, 15:10