Программа Postfix представляет собой один из альтернативных вариантов MTA Sendmail. Проект по работе над программой начался в исследовательском центре IBM T.J Watson Research Center по инициативе Витса Винема. Целями создания программа были производительность, безопасность, гибкость в использовании и устойчивость в работе.
MTA Postfix работает по протоколу ESMTP, поддерживает виртуальные домены и фильтрацию спама. Для эффективной фильтрации почтовых сообщений программа может использовать регулярные выражения и библиотеку PCRE.
Postfix не использует язык подстановки адресов, а производит поиск в файлах таблиц Berkley DB, dbm, LDAP, NIS или в базах данных, например, MySQL.
Программа Postfix совместима с программой Sendmail: файлы aliases и .forward программ имеют одинаковый формат.
Программа Postfix имеет модульную структуру, то есть состоит из нескольких взаимодействующих друг с другом компонентов — процессов, каждый из которых осуществляет только свою функцию: отправляет сообщения, принимает сообщения, доставляет почту по локальным адресам и т.д.
Любой компонент программы при необходимости может обратиться к другому компоненту. Взаимодействие между ними осуществляется через UNIX-сокеты или алгоритмы FIFO (очереди).
Такое модульное деление почтовой системы позволяет не использовать те компоненты, в которых нет необходимости. В этом заключается основное отличие от «монолитной» архитектуры программы Sendmail.
Главным процессом, с исполнения которого начинает работу программа, является процесс master. Он отвечает за запуск по требованию остальных процессов, их перезапуск, завершение и контроль.
Помимо основных процессов в почтовой системе Postfix присутствует ряд программ, которые позволяют взаимодействовать с почтовый системой из командной строки.
Во многих дистрибутивах, например Fedora Core, ASP linux, RHEL и т.п. программа входит в стандартную поставку. Соответственно, достаточно будет установить rpm пакет.
В дистрибутив Slackware Linux программа не входит, поэтому нужно установить её самостоятельно.
Вполне возможно, что в работе может понадобиться нестандартная сборка Postfix, поэтому следует также рассмотреть способ установки программы из исходных кодов.
После установки, в большинстве случаев, программа Postfix уже готова к работе. Тем не менее, есть 2 важных момента, на которые надо обратить внимание.
Во-первых, необходимо определить FQDN имя Вашей машины, иначе программа будет основываться на том имени, которое указано в $HOSTNAME.
Это можно сделать, отредактировав файл main.cf или выполнить, например, следующую команду:
$ postconf -e myhostname=alpha.mydomain.com
Во-вторых, должны быть определены пути к файлам почтовых псевдонимов, если этого ещё не было сделано. Например, таким образом:
$ postconf -c /etc/postfix -e \
"alias_maps = hash:/etc/postfix/aliases" \
"alias_database = hash:/etc/postfix/aliases"
Соответственно, можно отредактировать файл main.cf и прописать пути вручную.
Далее необходимо создать базу, выполнив команду:
$ newaliases # ( аналог ''sendmail -I'' )
Теперь можно запустить Postfix:
$ postfix start
Если в ходе запуска возникли ошибки, это отобразится на экране терминала.
Далее можно убедится, что почтовая система работает, воспользовавшись программой telnet:
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 alpha.localdomain ESMTP Postfix mail from: root@localhost 250 2.1.0 Ok rcpt to: root 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> HELLO from MTA Postfix! ) . 250 2.0.0 Ok: queued as 041BDB614C quit 221 2.0.0 Bye Connection closed by foreign host. You have new mail in /var/mail/root $