Описание mailer:

  Автор -- Анатолий Зарецкий

  Версия -- $Id: mailer.txt 1111 2007-06-12 19:42:00Z azaretsky $

  URL -- $URL: https://code.keysolutions.ru/svn/ks.mailer/trunk/src/ks/mailer/mailer.txt $

  Аннотация:

    Настраиваемый генератор писем.

  Идея реализации:

    Метод execute по шаблону генерирует некоторый текст и с помощью
    библиотеки ks.lib.mailtemplate создает из него письмо.

    Интерфейсы

        ITemplateAdaptable -- маркер, обозначает утилиты, приводимые к ITemplate,
            используется при формирования списка зарегистрированных шаблонов
            для атрибута template в IMailer


        ITemplate -- шаблон письма с произвольными параметрами

            метод __call__(**kw)

            ITemplate наследуется от ITemplateAdaptable


        IMailer

            template -- имя зарегистрированной утилиты ITemplateAdaptable

            execute(**kw) -- формирует письмо 

            Параметры для ks.lib.mailtemplate.template

                use_container
                use_alternative
                charset
                mime
                filename
                Subject

                # надо бы из этого тоже что-то вроде шаблона сделать
                # или в два этапа:
                #   template генерирует свой текст один раз, зато письмо из него делается
                #   несколько раз с разными хедерами, футерами и т.д. (заголовками по крайней мере)

                # TODO: можно письмо делать в два прохода, один раз тело письма, второй
                # раз заголовки, в т.ч. TO, FROM, SUBJECT, BCC.
                
                mail_header
                mail_body
                mail_footer

        IMailerAnnotable -- маркер. Объекты, предоставляющие IMailerAnnotable,
            могут быть аннотированы mailer'ом

    Адаптер

        IMailerAnnotable к IMailer.

    Словарь

        TemplateVocabulary -- словарь утилит ITemplateAdaptable

    Вид

        editmailer.html -- редактирование mailer'а из аннотации объекта,
            предоставляющего IMailerAnnotable
