PDA

Показать полную графическую версию : [решено] Отправка почты с вложением


Страниц : 1 [2]

sov44
11-07-2013, 16:18
а если в bat войти просто такого окна нет, такое ощущение что почтовый ящик просто не заведен ? »
я бат не устанавливал (см. пост выше), почтовые ящики рабочие.

sunnykey
11-07-2013, 16:21
небольшая проблемка, почему то при вводе timeout /? появляется
"TIMEOUT" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Хотя на другом компьютере все нормально, может что то с Path ? »
Проверь на проблемном компе, существует ли файл %windir%\system32\timeout.exe
По оф. мануалу это приложение есть в WinXP и выше
http://technet.microsoft.com/en-us/library/cc754891%28v=ws.10%29.aspx

foma24
11-07-2013, 16:26
нет его там, хотя XP стоит

Iska
11-07-2013, 16:32
sunnykey, не верьте. Ни в Windows 2000, ни в Windows XP его нет (только в Resource Kit'ах, с отличающимся форматом).

foma24, что скажете по поводу «start /wait»?

sunnykey
11-07-2013, 16:44
sunnykey, не верьте. Ни в Windows 2000, ни в Windows XP его нет (только в Resource Kit'ах, с отличающимся форматом). »
Да я уже на 95% задач по автоматизации использую Powershell, поэтому меня особо не волнует
foma24, что скажете по поводу «start /wait»? »
Думаю стоит привести пример с использованием данной команды
start /wait thebat.exe /MAILU=otpravitel;TO=poluchatel1@mail1.mail2.ru;S=INFO;A="%put%\%%i";SEND

C:\>start /?
Запуск указанной программы или команды в отдельном окне.

START ["заголовок"] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <узел NUMA>] [/AFFINITY <маска сходства>] [/WAIT] [/B]
[команда/программа] [параметры]

"заголовок" Заголовок окна.
путь Исходный каталог.
B Запуск приложения без создания нового окна с отключением
обработки сочетания клавиш ^C. Если приложение не
обрабатывает сочетание клавиш ^C самостоятельно,
единственным способом его прерывания является
использование сочетания клавиш ^Break.
I Новой средой станет исходная среда, переданная
cmd.exe, а не текущая среда.
MIN Запуск команды/программы в свернутом окне.
MAX Запуск команды/программы в развернутом окне.
SEPARATE Запуск 16-разрядной программы Windows в отдельной
области памяти.
SHARED Запуск 16-разрядной программы Windows в общей
области памяти.
LOW Запуск приложения с приоритетом IDLE.
NORMAL Запуск приложения с приоритетом NORMAL.
HIGH Запуск приложения с приоритетом HIGH.
REALTIME Запуск приложения с приоритетом REALTIME.
ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL
BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
NODE Указывает предпочтительный узел NUMA
в качестве десятичного целого числа.
AFFINITY Содержит маску сходства процессора в виде шестнадцатеричного
числа. Процесс будет выполняться только на этих процессорах.

Маска сходства интерпретируется по-разному при совмещении
параметров /AFFINITY и /NODE. Укажите маску сходства таким
образом, как если бы маска процессора узла NUMA сдвинута вправо
и начинается на нулевом бите.
Выполнение этих процессов ограничено процессорами,
общими для указанной маски сходства и узла NUMA.
Если общих процессоров не существует, то выполнение
процесса ограничено указанным узлом NUMA.
WAIT Запуск приложения с ожиданием его завершения.
команда/программа
Если это внутренняя команда cmd.exe или пакетный файл,
обработчик команд (cmd.exe) запускается с ключом /K.
Это означает, что окно не будет закрыто после завершения
команды.

Если это не внутренняя команда cmd.exe и не пакетный файл,
значит, это программа, которая будет запущена в графическом
или текстовом окне.

параметры Параметры, передаваемые команде/программе.

Примечание: параметры SEPARATE и SHARED не поддерживаются на 64-разрядных
платформах.

Указание параметра /NODE позволяет создавать процессы таким образом, чтобы
использовать память в системах NUMA. Например, два процесса, которые
взаимодействуют друг с другом через общую память, могут совместно использовать
один и тот же предпочтительный узел NUMA для минимизации задержки памяти.
Память выделается из одного узле NUMA по возможности, что позволяет процессам
выполняться на процессорах вне указанного узла.

start /NODE 1 application1.exe
start /NODE 1 application2.exe

Эти процессы можно ограничить для выполнения на определенных процессорах в
одном узле NUMA. В следующем примере приложение application1 выполняется
на низкоприоритетных процессорах узла, а приложение application2 выполняется
на двух следующих процессорах узла. В этом примере предполагается, что
указанный узел имеет минимум четыре логических процессора. Обратите внимание
на то, что номер узла можно изменить на другой действительный номер для
компьютера без изменения маски сходства.

start /NODE 1 /AFFINITY 0x3 application1.exe
start /NODE 1 /AFFINITY 0xc application2.exe

Изменения вызова внешних команд из командной строки или с помощью команды
START при включении расширенной обработки команд:

Для вызова неисполняемых файлов через механизм сопоставления типов файлов
достаточно просто ввести имя файла в командной строке. Например, команда
WORD.DOC запускает приложение, сопоставленное расширению имени файла .DOC.
Сведения о создании подобных сопоставлений из пакетных файлов приведены
в описаниях команд ASSOC и FTYPE.

При запуске 32-разрядного приложения с графическим интерфейсом пользователя
обработчик команд CMD.EXE не ожидает завершения работы приложения перед
возвратом к приглашению командной строки. Подобное новое поведение НЕ
относится к запуску приложений из пакетных файлов.

При выполнении командной строки, первым элементом которой является текстовая
строка "CMD" без расширения имени файла или указания пути, она заменяется
значением переменной COMSPEC. Это предотвращает запуск CMD.EXE из
текущей активной папки, если таковая программа там имеется.

Если первый элемент командной строки не содержит расширения имени файла,
обработчик команд CMD.EXE использует значение переменной среды PATHEXT,
чтобы определить расширения имен исполняемых файлов и порядок поиска
нужного файла. По умолчанию для переменной PATHEXT задается
значение:

.COM;.EXE;.BAT;.CMD

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

Если при поиске исполняемого файла нет соответствия ни одному из расширений,
выполняется проверка соответствия указанного имени папки. Если имя папки
соответствует указанному, то команда START запускает EXPLORER для этого
пути. Если такое действие выполняется из командной строки, то оно
эквивалентно выполнению команды CD /D для указанного пути.

foma24
11-07-2013, 16:58
Iska, «start /wait» опробую завтра и отпишусь, спасибо

foma24
12-07-2013, 09:30
Немного поменялась проблема, батник такого вида:

Set put=C:\otchet1
Set put1=C:\otchet2
For /f "Delims=" %%i In ('Dir /b "%put%\*.*"') Do (
"C:\Program Files\The Bat!\thebat.exe" /MAILU=otpravka@mail.ru;TO=poluchenie1@mail.ru;S=INFO;A="%put%\%%i";SEND
)

For /f "Delims=" %%i In ('Dir /b "%put1%\*.*"') Do (
"C:\Program Files\The Bat!\thebat.exe" /MAILU=otpravka@mail.ru;TO=poluchenie2@mail.ru;S=INFO;A="%put1%\%%i";SEND
)

del /Q C:\otchet1\*.*
del /Q C:\otchet2\*.*

Данный батник установлен в Назначенные задачи, чтобы отрабатывался каждые 2 минуты начиная с 9-00. Сам the bat включается автоматически при запуске винды раньше чем начинает работать батник.

Так вот при первом запуске батника в 9-00 он просто удаляет файл и не отправляет его, если повторно положить файл в папку, то он отправляется.

sunnykey
12-07-2013, 11:09
[q=foma24]Так вот при первом запуске батника в 9-00 он просто удаляет файл и не отправляет его, если повторно положить файл в папку, то он отправляется. »
а если перед удалением добавить
ping -n 30 127.0.0.1>nul

foma24
12-07-2013, 11:29
попробую, но уже утром в понедельник, спасибо

sov44
12-07-2013, 13:24
а не проще удаление файлов сунуть в соответствующий цикл-удаление после успешной отправки?
For /f "Delims=" %%i In ('Dir /b "%put%\*.*"') Do (
"C:\Program Files\The Bat!\thebat.exe" /MAILU=otpravka@mail.ru;TO=poluchenie1@mail.ru;S=INFO;A="%put%\%%i";SEND && del /q "%put%\%%i"
)

foma24
12-07-2013, 15:27
ping -n 30 127.0.0.1>nul »

не получится, пока батник ждал 30 пакетов появился файл и соответственно он не отправился, а удалился

sov44, попробую спасибо

Iska
12-07-2013, 17:40
Я третий раз настоятельно рекомендую опробовать запуск «thebat.exe» на исполнение посредством «start /wait».

foma24
15-07-2013, 09:26
&& del /q "%put%\%%i »
все тоже самое

«start /wait». »
тоже не работает

Видно все дело в самом почтовом клиенте, если он включается и начинает проверяет почту до включения интернета, то появляется ошибка, что сервер недоступен. Очень похоже, что через командную строку он не проверяет сервер, т.е. видит что сервер недоступен и письмо не отправляет, при этом батник считает что команда выполнена успешно и удаляет файлы.

Iska
15-07-2013, 12:15
при этом батник считает что команда выполнена успешно »
Где это видно? Я не видел у Вас попытки проверки errorlevel (вопрос ещё в том, конечно, что возвращает «The Bat!» в том или ином случае).

foma24
16-07-2013, 09:25
Похоже все дела было в the Bat v3 , поставил 4 версию (к счастью лицензия была), все вроде нормально работает




© OSzone.net 2001-2012