появилось интересное задание - написать скрипт который рассылал бы сообщение на определённые адреса в и-нете, сообщения электронной почты, который в качестве отправителя вставляет определённый адрес электронной почты, мне думается, что подобный скрипт был бы полезен для рассылки сообщений внутри нашей компании, счас вот думаю во-первых как его реализовать, proof of concept готов, осталось самое малое - научиться распознавать контент вложения для правильного выставления тэга описыващего тип контента, ну и пририсовать веб-морду и написать всё это на более-менее консервативном API, чтобы не использовать сотню экзотических перловых модулей, а только SMTP

по ходу процесса буду писать тут обновления и наверно в конце-концов выложу сам скрипт, говорю сразу mod-perl апача я не использую, он несколько экзотичен, сравнительно капризен и неуниверсален в плане того что встроенный перл в nginx несколько отличается (примерно как bash 2.05 и 3.2)

3 августа 2008, дополнение.

По обоюдному согласию (с главным специалистом) было решено начать с движка, рассылающего почту, а интерфейс доделать потом.

Итак на данный момнет есть движок, могущий рассылать письма однопоточно, он цепляется к одному почтовому серверу. Есть идея вынести движок в функцию и реализовать многопоточность с возможностью отсылки с разных серверов одновременно, то есть наш главный специалист предложил фундаментальный подход, но исключительно из соображений скорости рассылки, а то 1000 писем рассылать по нашему предприятию может быть будет не очень быстро, если реализовать это в 1 поток.

Таким образом пока что на повестке дня реализация системы рассылки не только в виде отдельной функции но и реализация механизма распаралеливания задачи и контроля потоков.

для веб-морды решено использовать tinymce в качестве html-editor'а и ещё надо будет нарисовать движок для ldap(выковыривание персон из списков рассылки) и разборщик текстовых файлов(для разборки списков email'ов) а также логгер, для составления отчётов о проделанной рассылке

Этой системке грозит попасть в план работ на конец сентября...

6 августа 2008, дополнение.

Сегодня провёл испытание движка - даже однопоточный механизм позволяет загрузить сервер на процессоре xeon с 4 ядрами и частотой 3.6ГГц и 3 гигами оперативки на 80-90% по всем ядрам, при этом создаётся поток примерно 1.5 мегабайта в секунду (30-35 сообщений в секунду по 47 килобайт каждое)

а софт на сервере такой - венда2003-р2, эксчейндж-2003сп2, симантик антивирус, так что есть чему тормозить

есть нюанс - за смтп-сессию можно было отослать только 20 сообщений, поэтому дабы не злоупотреблять, я организовал реконнект каждые 10 сообщений

15 августа 2008

вчера весь день промучался - оказывается Net::SMTP не хотят говорить по-русски с ActiveState Perl у меня ничего не вышло - письма доходят но само сообщение нечитаемо потому что я не в силах разобрать кароказябли (пробовал разные кодировки koi8-r Windows-1251 utf-8 кароказябли но разные) на Debian Linux Etch получилось отослать сообщение только в кодировке utf-8, с koi8-r не срослось, причём это не зависило ни от системной локали ни от локали самого скрипта(сообщение бралось из отдельного html-файла)

обновлено 23 ноября 2008:

По поводу кодировок поизучав различные rfc cтало ясно, что текст надо кодировать либо в base64 либо в quoted printable. Вобщем классика жанра - RTFM.

По поводу проекта - он по просту застрял, скажем так - не до него пока что.

Next Post