А ведь кому-то это 100% пригодится

27 июнь, 2007 - 14:17Андрей Зубинский

Как быть, если вы – Windows-пользователь, «злые админы» вашей локальной сети установили ограничение на максимальный размер письма, а вам надо отправить раз этак в 50 больше?

Тривиальная задача с тривиальным решением - упаковать отправляемое, разбить на куски допустимого размера, и отправлять по частям. Всё прекрасно, кроме кучи возни. А между тем…

В штатной подсистеме командной строки Windows есть очень полезная команда FOR (в любой из описанных ранее консолей, если вы не меняли командной оболочки, она расскажет сама о себе в ответ на традиционный запрос FOR /?). А еще по блату скажу, что есть очень замечательная крохотная программка также командной строки – blat.
Этих двух штуковин более чем достаточно, чтобы одной командой «забомбить» адресата файлами.
Для начала: после скачивания blat и её «установки» (в какой-либо каталог из перечня в переменной окружения PATH), следует программу инициализировать. По минимуму ей надо указать протокол (POP3/SMTP/NNTP), IP-адрес вашего почтового сервера, ваш собственный почтовый адрес  и, например, имя профиля для данной комбинации. Шаблон команды инициализации:
blat –install протокол ip_адрес_сервера мой_почтовый_адрес имя_профиля
На этом - всё, blat готов «к труду и обороне».
Теперь предположим, что почтовый сервер «выпускает» из внутренней сети письма размером не более 1 MB, а вам надо отправить 50+ MB фотографий, и сделать это минимальной кровью, несколькими движениями, а не мучительной «мышиной вознёй».
Сохраните следующее в виде bat-файла, например, с именем send_all.bat (естественно, поместите этот файл в какой-либо каталог из перечня, указанного в переменной окружения PATH):
for %%F in (*.%1) do blat %2 -to %3 -subject %4 -body %5 -r -attach %%~nxF
Превратите ваши файлы в какой-либо многотомный архив, например, - rar. Откройте в каталоге с этим архивом консоль (или перейдите в этот каталог), и наберите команду:
send_all rar профиль адрес_получателя "заголовок всех писем" "тело всех писем"
Разбирать здесь особо нечего – команда for для каждого файла с расширением rar текущего каталога вызовет blat c указанными вами параметрами и именем файла, который требуется «приаттачить».

Вот так.

И не надо искать какие-то сложные GUI-программы.

Кстати, по умолчанию blat хранит информацию о профилях (а их может быть несколько, конечно) в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Public Domain\Blat (можно указать программе, чтобы для каждого пользователя были собственные профили). Если этот ключ «выкусить» редактором реестра и сохранить, например, на флэшке, blat можно сделать «переносимым».

Этот скрипт я набросал сразу, как только отыскал blat, и с тех пор он меня регулярно выручает.

Пользуйтесь на здоровье.