Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
А что внутри?
MeTA1 объявлен как агент передачи сообщений (message transfer agent, MTA).
Как сказано на домашней странице «родительского» проекта (
Основное отличие MeTA1 от Sendmail – его модульность. Подобно Postfix и Qmail, этот пакет состоит из нескольких взаимодействующих компонентов, каждый из которых решает свою отдельную задачу и работает с правами своего пользователя.
Это повышает устойчивость пакета к ошибкам в той или иной подсистеме, а также поднимает общий уровень безопасности пакета – за счёт разграничения прав доступа взлом одной подсистемы не оказывает столь сильного влияния на сервер в целом. Причём нужно заметить, что все программы, кроме MCP, реализованы с поддержкой многопоточности.
Структура MeTA1
На рисунке представлена структурная схема MeTA1. Входящие сообщения обрабатываются программой smtps (SMTP-сервер), в задачи которой входит приём входящих сообщений и их помещение в очередь. Взаимодействующий с SMTP-сервером, модуль SMAR (address resolver) выполняет «прогон» адресов получателя и отправителя по базам access, aliases, mailertable и т. д. В его же юрисдикцию входит и реализация «грейлистинга», о которой чуть подробнее читайте дальше.
Очередь представляет собой несколько хранилищ. Содержимое писем, включая информацию заголовков, помещается на диск в так называемое хранилище контента (CDB); информация конверта входящих сообщений (передаваемая в командах MAIL и RCPT в процессе SMTP-диалога) попадает во входящую очередь, размещаемую в оперативной памяти (IQDB), и дублируется на диск в так называемое «резервное» хранилище (IBDB). Управляет очередью программа qmgr (менеджер очереди).
Если сообщение должно быть передано удалённому получателю, то данные его конверта перемещаются в активную очередь (AQ), которая периодически обрабатывается планировщиком менеджера QMGR. Когда планировщик принимает решение об отправке данного сообщения, его содержимое из CDB вместе с «конвертной» информацией передаётся SMTP-клиенту (программа smtpc). Если отправка завершается успешно, информация конверта передаётся в IBDB для протоколирования, а само сообщение из CDB удаляется. В случае ошибки сообщение (точнее, конверт плюс некоторая служебная информация) переносится на диск в очередь отложенных сообщений (DEFEDB), и попытки повторной отправки предпринимаются позже – как только сообщение «отлежится» в DEFEDB определённое время, планировщик вновь переносит его в AQ.
Координацией работы всех модулей занимается менеджер MCP, который, собственно, и превращает всю эту россыпь отдельных программ в единое целое.
На данный момент в пакет MeTA1 не включены агенты локальной доставки (LDA) и submission-агент (MSA). Но для построения полнофункциональной системы, способной взаимодействовать с локальными пользователями, необходимый функционал можно обеспечить сторонними программами, совместимыми с Sendmail. Например, в качестве LDA вполне можно использовать procmail (в каталоге contrib архива исходных текстов MeTA1 можно найти пару патчей для эффективной работы по протоколу LMTP).