Вот насколько всё же проще людям в англоговорящих странах! Во-первых, раскладку клавиатуры им переключать не надо. Во-вторых - с кодировками символов заморочек никаких. А я вот каждый раз, когда сталкиваюсь с тем, что надо что-то в консоли сделать с русскими символами, проклинаю разработчиков Windows. Ну, честное слово, это же издевательство какое-то! Даже в рамках ОДНОЙ операционной системы используется ДВЕ кодировки символов. И каждый раз я заново бьюсь головой об эти разногласия между ними.
Вот из последнего. Хочется мне, чтобы в пятницу вечером текст из определённого файлика рассылался группе товарищей. Группа, прямо скажем, небольшая, шесть человек или около того, но всё равно делать рассылку вручную надоедает. Для такого случая существуют консольные почтовые клиенты, для которых можно написать небольшой скрипт, и всё, раз в неделю (или как угодно) планировщик будет его запускать и делать за тебя всю работу. Собственно, мне так уведомления с серверов приходят - если что не так, скрипт присылает письмо. Но, зная о проблеме с кодировками, я все уведомления для себя написал транслитом. А для людей мне нужно отправлять нормальный русский текст, нормальными русскими буквами.
Утилитка, которой я пользуюсь, с оригинальным названием Blat, вроде бы умеет работать с кодировками. Поэтому я написал вот такой скриптик:
@echo off setlocal set list=D:\path\to\Programs\blat307\files\maillist.txt set smtpsender=username@yandex.ru set smtpserver=smtp.yandex.ru set smtpport=25 set smtpuser=username@yandex.ru set smtppwd=password set subj=D:\path\to\Programs\blat307\files\subj.txt set msg=D:\path\to\Programs\blat307\files\msg.txt set logfile=D:\path\to\Programs\blat307\log\blat_log.txt set codepage=Windows-1251 for /f %%f in ('type %list%') do ( D:\Temp\blat307\full\blat.exe -to %%f -f %smtpsender% -server %smtpserver% -port %smtpport% -u %smtpuser% -pw %smtppwd% -log %logfile% -charset %codepage% -sf %subj% -bodyF %msg% ) ECHO Sended > %msg% :ENDТо есть чёрным по белому написано, что codepage у нас Windows-1251. Но почему-то письма приходит через раз крякозябрами. Что тому причиной - поди разберись. С виду-то всё правильно!
Комментариев нет :
Отправить комментарий