Решил организовать систему рассылки почты на основе Postfix. Выбор здесь невелик, а точнее один, это Mailman. Гугл сообщил на Gentoo документацию и я радостно побежал её читать. Выполняя все по инструкции, ничего не заработало. Как оказалось всему виной масса опечаток и плохие примеры. По этому расскажу как я ставил “виртуальную почтовую систему”.
Самое первое установим Postfix:
emerge postfix
Зададим базовые настройки /etc/postfix/main.cf:
# наш хост, на который будет откликаться Postfix
myhostname = mail.example.com
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
# укажем подсети, из которых будет доступна работа с почтой
mynetworks = 10.0.0.0/24, 127.0.0.0/8
home_mailbox = .maildir/
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
Запустим Postfix
/etc/init.d/postfix start
Теперь unix пользователи сервера могу получать и отправлять почту. Самое время это проверить. В моем случае в настройках указываю smtp и pop3 как mail.example.com и юзер root с его системным паролем.
Настала очередь Mailman. Установим:
emerge mailman
Включим веб-интерфейс /etc/conf.d/apache2:
APACHE2_OPTS="... -D MAILMAN"
Дадим доступ апачу:
gpasswd -a apache mailman
Правим /usr/lib64/mailman/Mailman/Defaults.py:
DEFAULT_EMAIL_HOST = 'mail.example.com'
DEFAULT_URL_HOST = 'lists.example.com'
Настроим Mailman на работу с Postfix /usr/lib/mailman/Mailman/mm_cfg.py:
MTA = "Postfix"
h = 'mail.example.com'
POSTFIX_STYLE_VIRTUAL_DOMAINS = [h]
add_virtualhost(h, h)
DEFAULT_SERVER_LANGUAGE = 'ru'
Создадим список рассылки
su mailman
cd
bin/newlist mailman
bin/genaliases
Запускаем почтальена:
/etc/init.d/mailman start
Добавляем поддержку псевдонимов Mailman в Postfix /etc/postfix/main.cf:
owner_request_special = no
recipient_delimiter = +
alias_maps = hash:/var/lib/mailman/data/aliases
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman
Перезапускаем Postfix и Apache:
/etc/init.d/postfix start
/etc/init.d/apache2 start
Теперь идем в админку http://lists.example.com/mailman/admin и настраиваем рассылку.