Postfix
Теория
Заголовки о теле сообщения
Заголовки делятся на обязательные, рекомендуемые, необязательные (X-заголовки)
Date - обязательный; содержит дату и время составления сообщения; при отсутствии этого заголовка Postfix сам добавляет его
From - обязательный; содержит отправителя; при отсутствии этого заголовка Postfix сам добавляет его из конверта
Message-Id - рекомендуемый; содержит уникальный id сообщения, определяющий текущую версию сообщения.
Установление соединения с серваком
Клиент подключается к серверу по доменному имени, в ответ сервер возвращает код 220, подтверждающий имя хоста сервера
Клиентом отправляется команда HELO (для SMTP) или EHLO (для ESMTP) с указанием хоста клиента, в ответ сервер возвратит код 250 с именем хоста сервера
Передаваемая клиентом команда MAIL с указанием отправителя и команда RCPT у указанием получателя создает конверт. На каждую передаваемую команду серверу клиенту возвращается код 250
Тип обслуживания
При обращении у сервера запрашивается тип обслуживания клиента.
- HELO - обычное обслуживание по RFC 821
- EHLO обслуживание по RFC 2821
Основной конфиг main.cf
Полномочия на ретрансляцию
mynetworks_style принимает значения class (класс сети), subnet (подсеть сетевухи), host (локальные адреса хоста)
mynetworks = 127.0.0.0/8, 10.0.0.0/22, 172.16.0.0/22
DNS
relayhost = [smtp.yandex.ru] отменяет поиск MX-записи для этого хоста-ретранслятора
Интервальные значения
queue_run_delay интервал просмотра очереди deffered
Очереди
queue_directory = /var/spool/postfix папка хранения подпапок очередей
incoming - результат обработки демона cleanup помещается в эту очередь в виде файлов от владельца postfix с правами 0600. К файлу очереди, готовому к дальнейшей обработке, применяются права 0700 и уведомляется диспетчер очередей, что поступило новое сообщение. Диспетчер очередей игнорит файлы очереди с правами 0600, файлы очереди с правами 0700 перемещает в очередь active
maildrop - посланная локальной программой почта, ожидающая обработки демоном pickup, помещается в эту очередь.
deffered - очередь, в которую помещаются сообщения, которые по какой-либо причине не могут быть доставлены до адресата. Диспетчер очередей периодически просматривает эту очередь для повторного помещения их в очередь active
Карты
Карты используются для поиска информации разного назначения. Во всех картах одинаковый синтаксис (ключ: значение).
Индексированные карты формируются как двоичные данные из текстовых файлов (aliases, virtual, transport, relocated, sasl_passwd)
Линейные карты - это обычные текстовые файлы, значения записей которых применяются в линейном порядке, если поиск значения будет совпадать с несколькими имеющимися значениями, то возвратится первое совпадение
Алиасы
Алиас заменяет локальную часть адреса на имя пользователя
Конфа: /etc/{postfix/,}aliases
rpc: root ntp: root user1: user2
Команды
postalias hash:/etc/{postfix/,}aliases - создание индексированной карты псевдонимов из файла псевдонима
postcat -q F2B9715C0B3 - вывод содержания сообщения, находящегося в очереди
postmap hash:/etc/postfix/virtual
mailq - вывести идентификаторы сообщений в очереди