Краткое описание пакета
=======================

Продукт представляет простой интерфейс темплейтов для генерации
писем по шаблону.

Интерфейсы
----------

IMailTemplate
    Предоставляет первичный шаблон темплейта
    
    subject : TextLine
        Тема письма, содержит строку формата текста
        
    body : Text
        Тело письма, содержит строку формата текста
        
    charset : TextLine (UTF-8)
        Набор символов, используемый письмом            
        
    mimetype : TextLine (text/plain) 
        Тип содержимого шаблона
        
..  converter : TextLine select from convertors vocabulary
        Конвертор, используемый для конвертирования письма в html
        
..  mimeadapter : TextLine select from adapters vocabulary
        Конвертор, используемый для конвертирования письма в
        MIME-письмо.
        
    isadaptive : Bool (True)
        В процессе применения шаблона, несуществующие в словаре ключи
        заменяются на строку **"%(" <ключ> ")s"**, что позволяет не
        выделятся явно подстановки первого и второго уровня.
        
    apply() : dict -> IMailTemplate
        Функция, выполняющая один шаг преобразования письма, на выходе
        функции получается неперзистент-объект, с выполененной заменой
        в полях subject и body по словарю, и копией всех остальных полей.
        
..  IMailTempleateExt(IMailTemplate)
        Расширенный интерфейс темплейта, со встроенными полями адресов. Расширенный
        интерфейс используется только у не-перзистент класса, для подачи
        полей на вход адаптера к IMailMessage.
    
        mailfrom : TextLine
            Адрес от которого отправляется письмо.
        
        rcptto : TextLine                     
            Адрес на который отправляется письмо.

IMailTemplateAnnotable
    Указывает, что данный объект может иметь аннотацию c IMailTemplate
    
IMailTemplateUtilitable
    Указывает, что данный объект может иметь утилиту с IMailTemplate
    
    template : TextLine select from IMailTemplate utilities vocabulary
        Имя темплейта, выбираемого из словаря темплейтов.
        
..  IMailMessage            
        Подготовленное сообщение в формате MIME (или другом формате, безразлично),
        поля:
    
        body
            Текст сообщения
        
        rcptto
            Кому сообщение (используется коннектором)
            
Классы
------

Классы темплейта подразумевают что темплейт используется в двух режимах: как
самостоятельная утилита и как аннотация.
    
MailTemplateBase(object)
    Базовый класс темплейта, он же темплейт промежуточного
    преобразования
    
MailTemplateAnnotation(MailTemplateBase,Persistent)
    Темплейт как аннотация
    
MailTemplate(MailTemplateAnnotation,Contained)
    Темплейт как утилита
        
Адаптеры
--------

IMailTemplate
    Вернуть компонент с интерфейсом IMailTemplate, который должен использоваться вместе
    с адаптируемым компонентом.
        
Виды
----

mailtemplateselect.html
    Выбор темлейта для использования с текущим компонентом.
    
mailtemplate.html
    Редактор темплейта.
