Граф О'Манн (graf_o_mann) wrote,
Граф О'Манн
graf_o_mann

Отправка e-mail из командной строки Windows

15:43 17.04.2013


Вот насколько всё же проще людям в англоговорящих странах! Во-первых, раскладку клавиатуры им переключать не надо. Во-вторых - с кодировками символов заморочек никаких. А я вот каждый раз, когда сталкиваюсь с тем, что надо что-то в консоли сделать с русскими символами, проклинаю разработчиков 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. Но почему-то письма приходит через раз крякозябрами. Что тому причиной - поди разберись. С виду-то всё правильно!

оригинал записи в блоге Graf O'Mann



Яндекс.Метрика






Tags: the pizdets, windows, злое, компьютер, программы, работа, техническое
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments