Страницы: 1
RSS
Как отправить 30 файлов, автоматом приатачив по 3 шт. на письмо.
 
Я фотограф.
Мне часто приходится отправлять картинки заказчикам.
При этом как правило оправляется 10-30 картинок, одна картинка имеет размер как правило 2-3 Мб. Для того чтобы надежно доходили в одном письме отправляю 2-3 штуки. Приходиться в ручную атачить картинки на бумажке записывая какие прикрепил какие нет... геморой ещё тот.

Есть ли вожможность автоматизации этого процесса?
например указал картинки от и до... и они автоматом расскидались по 3 шт на несколько писем...



 
 
Можно...
Но для этого надо немного попыхтеть, составляя программку, скриптовый или командный файл.

Хмм... командный файл отпадает - в нем достаточно бедные возможности для такого (по 2-3 картинки на письмо).
Проще написать bat-файл отправляющий по одному файлу.

Что ближе?
 
Вот простейший вариант:

Рецепт:
Сохранить это в файл с расширением vbs (например send.vbs).

Цитата

'=========================================================
acc_name="ivan@mail.com" 'Здесь должно быть имя ящика
fld_name="Outbox" 'Здесь должно быть имя папки
subj = "Высылаю вам несколько файлов" 'Здесь должна быть тема письма
email = "" 'Установка адресата: пусто("") - с запросом емайла, непусто - подстановка в поле адресата.
'=========================================================

set WSHShell = WScript.CreateObject("WScript.Shell")
tb_exe = WSHShell.RegRead("HKCU\Software\RIT\The Bat!\EXE path")
set Args = Wscript.Arguments


if email = "" then
 email = InputBox("Введите адрес:")
end if

for i=0 to args.count-1

Command = """" & tb_exe & """ /MAILU=" & acc_name & ";F=" & fld_name & ";S=""" & subj & " " & i+1 & "/" & args.count & """;"
   Command = Command & "TO=""" & email & """;"
   command = command & "A=""" & args(i) & """;"

'uncomment to debug
'MsgBox command
   WSHShell.Run command, 1, false

next

Поправить в нем блокнотом заголовочную часть.

Положить этот файл на рабочий стол.

Потом выделить несколько файлов и перетянуть и бросить на иконку этого файла.

Должен появиться запрос на email и создасться по одному письму для каждого файла.

Наворачивать и приукращивать можно бесконечно.
Вариант?
 
Иван Болховитинов, спасибо.

Сейчас попробую.

Но по одному файлу не очень удобно.

А если выделить несколько файлов и перетащить?

А в Бате я так понимаю нет возможностей?
например задать что размер письма не должен превышать 9Мб, а потом например в проводнике выделять 30 картинок и сказать отправить по почте и чтобы БАТ разбил эту кучу по письмам?


Василий Смирнов
 
 
в принципе можно конечно написать батник, который все файлы в катологе группирует по три и отсылает... но он будет довольно навороченый... Ему придется видимо копировать по 3 файла в дополнительный каталог и оттуда уже отсылать...

хочется какнибудь попроще... вроде бы задача достаточно простая...
 
попробывал.
работает.
Спасибо большое - это уже намного лучше чем в ручную мучиться...

только я добавил ввод сабжа и вид подставляемой нумерации изменил слегка... Если я отсылаю тему то не всегда в один день... и одинаковая тема нумеруется например Китай1, потом Китай2 и т.д Но это уже мои частности... :)

Еще раз спасибо.


======
Василий Смирнов
 
Цитата
в принципе можно конечно написать батник, который все файлы в катологе группирует по три и отсылает... но он будет довольно навороченый... Ему придется видимо копировать по 3 файла в дополнительный каталог и оттуда уже отсылать...
Это не проблема даже по дополнительным каталогам не надо распихивать.
надо сделать только правильную обработку цикла for по 3 файла или подсчет размера.

Пример выше лишь то, что я набросал за несколько минут.
А по кучки по размеру или по количеству программируются.

Выделение кучи файлов как вы видели, работает вполне нормально.

Вот пример ещё более навороченный:
он пересылает файлы порциями по 3 файла
Цитата

Код
'=========================================================
acc_name="ivan@mail.com" 'Здесь должно быть имя ящика
fld_name="Outbox" 'Здесь должно быть имя папки
subj = "Высылаю вам несколько файлов" 'Здесь должна быть тема письма
email = "" 'Установка адресата: пусто("") - с запросом емайла, непусто - подстановка в адресата.
max_files = 3 'Максимальное количество файлов в письме
'=========================================================
set WSHShell = WScript.CreateObject("WScript.Shell")
tb_exe = WSHShell.RegRead("HKCU\Software\RIT\The Bat!\EXE path")
set Args = Wscript.Arguments 
if email = "" then 
  email = InputBox("Введите адрес:") 
end if
i = 0
do while i < args.count
   Command = """" & tb_exe & """ /MAILU=" & acc_name & ";F=" & fld_name & ";S=""" & subj & " " & i+1 & "/" & args.count & """;"
    Command = Command & "TO=""" & email & """;"
   for ii=1 to max_files 
     if i = args.count then exit for
      command = command & "A=""" & args(i) & """;" 
      i = i + 1
   next
   'uncomment to debug
    'MsgBox command
    WSHShell.Run command, 1, false
loop

просьба к вам - отписаться по результатам.


Упаковка кучками не более 9 мег это другая опера и немножно другая программа
 
Иван, огромное спасибо.
Все замечательно работает, только я немного под себя сделал:

'=========================================================
acc_name="PRESS" 'Здесь должно быть имя ящика
fld_name="Outbox" 'Здесь должно быть имя папки
subj = "тест1 " 'Здесь должна быть тема письма
email = "хх@хххх.ru" 'Установка адресата: пусто("") - с запросом емайла, непусто - подстановка в поле адресата.
max_files = 3 'Максимальное количество файлов в письме


'=========================================================

set WSHShell = WScript.CreateObject("WScript.Shell")
tb_exe = WSHShell.RegRead("HKCU\Software\RIT\The Bat!\EXE path")
set Args = Wscript.Arguments


if email = "" then
email = InputBox("Введите адрес:")
end if

max_files = InputBox("Введите количество картинок на одно письмо:")

subj = InputBox("Введите тему письма:")

pn=0

do while i < args.count

pn=pn+1

  Command = """" & tb_exe & """ /MAILU=" & acc_name & ";F=" & fld_name & ";S=""" & subj & "  " & "(" & args.count\max_files+1 & ") " & "- " & pn & """;"
   Command = Command & "TO=""" & email & """;"
  for ii=1 to max_files
    if i = args.count then exit for
     command = command & "A=""" & args(i) & """;"
     i = i + 1
  next



'uncomment to debug
'MsgBox command
WSHShell.Run command, 1, false

loop

=============

Еще раз огромное спасибо от меня и от других фотографов с такой же проблемой
- http://www.photosight.ru/pforum/showflat.php?Cat=&Board=photo_profi&Number=546245&page=0&view=collapsed&s­b=5&o=0&fpart=

======
Василий Смирнов
 
Спасибо не за што.
Как точка для отсчета пригодится. а такой простенький файлик может каждый пригладить под себя.

Этот файлик можно подложить в меню Send To (Отправить)
и на выделенной куче файлов просто жать правой кнопкой мыши и выбирать Отправить - как обзовете файл.


И просьба на будущее - не писать рекламу в подписи.
Страницы: 1