Это старая версия документа.
Своя почта для ubuntu.ru
Предлагаю сделать свою почту для ubuntu.ru.
Что нужно:
- Правильно настроить DNS
- Поставить postfix
Самым разумным, на мой взгляд, является организация ящиков в виде редиректов на основной ящик пользователя из профиля SMF. То есть члены определённой группы SMF автоматически получают адрес login@ubuntu.ru, который является редиректом на их основной почтовый адрес из профиля.
Преимущества: безопасность сервера (нет ни авторизации, ни фильтров спама, ни вообще какого-либо доступа пользователей к SMTP) и идеальная простота для конечного пользователя. Ибо ящики и так уже у всех есть и пытаться стать ещё одним почтовым провайдером просто бесполезно.
Конфиг Postfix примерно такой:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version ######################################################## ## Основные параметры smtpd_banner = $myhostname ESMTP server biff = no # Максимальный размер письма. По умолчанию всего 10Mb message_size_limit = 204800000 # Основные параметры хоста myhostname = mail.ubuntu.ru mydestination = $myhostname myorigin = $mydomain mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all append_dot_mydomain = no readme_directory = no # Параметры оповещений и очереди (актуальны только для отправки через SMTP) delay_warning_time = 2h maximal_queue_lifetime = 1d bounce_queue_lifetime = 1d # Оповещения на ящик администратора (включать только для отладки!) #notify_classes = delay, resource, software bounce_notice_recipient = postmaster@$mydomain 2bounce_notice_recipient = postmaster@$mydomain delay_notice_recipient = postmaster@$mydomain error_notice_recipient = postmaster@$mydomain ########################################################## ## Настройки адресов и доставки # Используем только виртуальных пользователей local_recipient_maps = relay_domains = relay_recipient_maps = # Настройки виртуальных ящиков virtual_mailbox_domains = $mydomain # Локальных пользователей нет (если нужны - нужно ставить Dovecot) virtual_mailbox_maps = # Собственно карты перенаправлений virtual_alias_maps = hash:/etc/postfix/mailboxes/smf-aliases hash:/etc/postfix/mailboxes/local-aliases # Параметры локальной доставки. Если она нужна, то надо ставить Dovecot virtual_mailbox_base = /var/mail virtual_uid_maps = static:900 virtual_gid_maps = static:900 # Карты транспортов (могут пригодится для добавления перенаправлений) transport_maps = # LDA - Dovecot (только для локальной доставки) #dovecot_destination_recipient_limit = 1 #virtual_transport = dovecot ########################################################### ## Авторизация и шифрование - отключены # SASL авторизация отключена smtpd_sasl_auth_enable = no # TLS отключён smtpd_use_tls = no ########################################################### ## Ограничения и запреты # Запретить ETRN команду smtpd_etrn_restrictions = reject # Запретить VRFY команду disable_vrfy_command = yes # Требовать наличие EHLO (HELO) команды smtpd_helo_required = yes # Всегда отклонять письма для всех неизвестных ящиков smtpd_reject_unlisted_recipient = yes # Ограничения на клиента - принимаем только если есть PTR (не жёсткий запрет) smtpd_client_restrictions = permit_mynetworks reject_unknown_reverse_client_hostname permit # Ограничения на HELO. Отклоняем письма от всех хостов, которые даже представиться не могут smtpd_helo_restrictions = permit_mynetworks reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname permit # Ограничения на MAIL FROM. Отклоняем все письма, отправитель которых предоставил невалидный адрес smtpd_sender_restrictions = reject_non_fqdn_sender reject_unknown_sender_domain permit # Ограничения на RCPT TO. Принимаем только для известных нам адресов smtpd_recipient_restrictions = reject_non_fqdn_recipient reject_unlisted_recipient permit_mynetworks reject_unauth_destination # Ограничения на данные. Не принимаем в случае некорректной передачи smtpd_data_restrictions = reject_unauth_pipelining
Как видно, postfix для определения валидных получателей использует одну стандартную карту - /etc/postfix/mailboxes/aliases. Её мы будем генерить раз в сутки на основе БД SMF таким вот скриптом:
# Скрипт чуть позже
Итого поставленная цель достигнута. Кроме того, можно вручную добавлять алиасы, чтобы не создавать лишние аккаунты в SMF. Для этого служит вторая карта - local-aliases, которая заполняется по необходимости вручную.