Войти

Показать полную графическую версию : Отправка по почте и перемещение файла одновременно!!!


malder
19-10-2011, 00:48
Доброго времени суток уважамые.
Помогите решить некую задачку, или дать совет как лучше реализовать.
Каждый день мне приходят определенные файлы по очереди в определенную папку их количество может быть до 30 напротяжения рабочего дня, я их открываю обрабатываю и потом отправляю по почте (по умолчанию стоит Lotus). Для самоконтроля обработанный файл я перемещаю в определенную папку D\:Обработан.
Как можно реализовать чтобы при отправке файла по почте он автоматически перемещался в папку D:\Обработан с интервалом 3-4 секунды, тоесть сначала формируется письмо на отправку с прикрепленным файлом, а потом через 3-4 секунды он перемещается.
Обычно отправку файла делаю через контекстное меню правой кнопкой на файл-Отправить-Адресат.
Может быть назначить определную комбинацию кнопок при которых будет осуществлятся и отправка по почте и перемещение.

Anonymоus
19-10-2011, 03:54
Возможно, вам подойдет решение на bat?
Сохраните этот скрипт в кодировке 866, если предстоит иметь дело с путями, содержащими русские буквы, создайте директорию - например, в Program Files, положите рядом со скриптом три файла - blat.dll, blat.exe и blat.lib, скачать их можно здесь (http://sourceforge.net/projects/blat/files/Blat%20Full%20Version/Blat%20v2.7.5/blat275.full.zip/download).
Далее, создайте ярлык к скрипту, назовите его как вам нужно, и переместите его в папку SendTo (в WinXP ее расположение - %UserProfile%\SendTo)


@Echo Off
:: Директория для перемещения
Set TargetDir=D:\Обработан
:: Получатель
Set EMail=guest@mail.ru
:: Почтовый сервер для отправки
Set Server=smtp.mail.ru
:: Логин
Set Login=script.backup@mail.ru
:: Пароль
Set Password=test123

Set File="%~1"
blat.exe -server %Server% -u %Login% -pw %Password% -subject "Backup" -body " " -to %EMail% -f %Login% -attach %File%>nul
If %ErrorLevel%==3 (Echo Невозможно прикрепить файл&Pause&Exit)
If %ErrorLevel%==2 (Echo Неверный логин\пароль&Pause&Exit)
If %ErrorLevel%==1 (Echo Сообщение отправить не удалось&Pause&Exit)
Move %File% "%TargetDir%"
If %ErrorLevel%==1 (Echo Перемещение файла не удалось&Pause&Exit)
Exit


Если вам нужно указать определенную тему или текст письма со вложенным файлом, обратитесь к встроенной помощи программы blat - blat.exe /?

Отправка файла произойдет так же, как вам и привычно - через контекстное меню > Отправить > имя ярлыка.
Вот еще, забыл уточнить - адрес для отправки у вас один и тот же, или разным адресатам шлете? Если разным, то можно добавить диалог для ввода адреса при отправке.

malder
19-10-2011, 14:13
Добрый день, пасибо за помощь, сегодня дома попробую.
Адресаты постоянно разные, тоесть у меня есть группы рассылки разные. Но это уже второй вопрос на будущее.

Anonymоus
19-10-2011, 16:35
malder, вот вариант с запросом адреса


@Echo Off
:: Директория для перемещения
Set TargetDir=D:\Обработан
:: Почтовый сервер для отправки
Set Server=smtp.mail.ru
:: Логин
Set Login=script.backup@mail.ru
:: Пароль
Set Password=test123

If Not Exist "%TargetDir%" MD "%TargetDir%"
Set /p EMail= Введите адрес:
Set File="%~1"
blat.exe -server %Server% -u %Login% -pw %Password% -subject "Backup" -body " " -to %EMail% -f %Login% -attach %File%>nul
If %ErrorLevel%==3 (Echo Невозможно прикрепить файл&Pause&Exit)
If %ErrorLevel%==2 (Echo Неверный логин\пароль&Pause&Exit)
If %ErrorLevel%==1 (Echo Сообщение отправить не удалось&Pause&Exit)
Move %File% "%TargetDir%"
If %ErrorLevel%==1 (Echo Перемещение файла не удалось&Pause&Exit)
Exit

malder
19-10-2011, 17:11
Ничего не получается, при отправке файла через ярлык, сначала запрашивает ввести адрес, потом что-то думает, далее пишет нажмите любую клавишу и ничего не происходить. Возможно что-то не так делаю.

Хотелось бы сделать в таком плане, когда выделяю файл правой кнопкой далее отправить-адресат, то автоматом формируется письмо с вложенным этим фалом. Вот бы хотелось скриптик который в последствии вложу в send to, выделяю файл правой кнопкой отправить-далее имя скрипта, и он формирует процедуру как в случае с отправить-адресат и потом через 4 секунды перемещает в определнную папку этот файл.




© OSzone.net 2001-2012