Проект почтовый сервер в Docker
Docker mail server - это полнофункциональный почтовый сервер, представляющий собой набор образов Docker. Цель проекта - легко настраиваемый, легко обслуживаемый и полнофункциональный почтовый сервер. Эксклюзивной возможностью является автоматически создаваемая и обновляемая Адресная книга, реализованная на
OpenLDAP.
Основные возможности
- Получение писем для всех ваших виртуальных почтовых доменов
- Фильтрация спама и вредоносных программ
- Отправка писем
- Шифрование всех соединений (по возможности)
- Добавление DKIM подписи к отправляемым письмам
- Хранение писем на диске сервера
- Использование квот (ограничение размера почтовых ящиков) пользователей
- Разрешение пользователям
- управлять фильтрации писем
- распределять письма по разным папкам
- перенаправлять письма
- отправлять уведомления об отсутствии на рабочем месте
- Предоставление Webmail доступа к почте
PostfixAdminдля администрирования почтовых ящиков и доменов- Автоматическая Адресная книга на
OpenLDAP(Она автоматически обновляется при появлении и удалении пользователей в базеPostfixAdmin. Автоматически создается alias Всем пользователям Домена, который создает в базеPostfixAdminодноименный alias.)
Как это работает?
Рассмотрим пример, когда пользователь хочет отправить письмо в интернет.

- Пользователь подключается по защищенному соединению к Dovecot на порт submission 587(STARTTLS).
- Dovecot проверяет имя пользователя и пароль в базе данных.
- Если пользователь опознан, то сообщение перенаправляется на отправку в Postfix.
- Postfix отправляет сообщение на проверку в RSPAMD.
- RSPAMD хранит свои данные в redis.
- RSMAMD проверяет письмо на вирусы (если обнаружен вирус отправка письма прекращается).
- После проверки письмо возвращается в Postfix.
- Postfix отправляет письмо на почтовый сервер получателя.
Рассмотрим пример получения письма из интернета.

- Удаленный почтовый сервер подключается к нашему серверу Postfix по протоколу SMTP.
- Postfix проверяет в базе данных домен получателя. Если это наш виртуальный домен, то проверяет имя пользователя.
- Если письмо адресовано нашему пользователю, то оно отправляется на проверку в RSPAMD.
- RSPAMD хранит свои данные в redis.
- RSMAMD проверяет письмо на вирусы (если обнаружен вирус письмо отбрасывается).
- После проверки письмо возвращается Postfix.
- Postfix отправляет письмо в Dovecot для локальной доставки в ящик пользователя.
- Dovecot проверяет дополнительные правила Sieve и сохраняет письмо в локальный ящик пользователя.
Предварительная настройка
Прежде чем начать установку почтового сервера, необходимо настроить DNS хотя бы для одного домена.
Имя хоста почтового сервера.
Почтовый сервер должен иметь уникальное имя хоста. Это имя является полным доменным именем и указывает на Ip адрес вашего сервера. Например, если ваш почтовый домен называется example.org, то имя хоста почтового сервера может называться mail.example.org. Убедитесь что в DNS есть запись для вашего имени хоста
mail.example.org. IN A x.x.x.x
где x.x.x.x это IP адрес внешнего интерфейса вашего сервера. Исключением является сервер в DMZ. В этом случае вы должны использовать перенаправление портов с публичного IP адреса на ваш сервер.
MX запись.
Для каждого вашего почтового домена в DNS должна быть MX запись. С помьщью этой записи другие почтовые сервера определяют имя хоста вашего почтового сервера. А потом имя хоста разрешается в IP адрес с помощью записи A в DNS.
Для домена example.org MX запись будет выглядеть так
example.org. IN MX 10 mail.example.org.
Для другого вашего домена mydomen1.com MX будет выглядеть так
mydomen1.com IN MX 10 mail.example.org.
Запись в обратной зоне DNS.
Для почтового сервера настоятельно рекомендуется настроить запись в обратной зоне DNS. Если ваше DNS имя mail.example.org разрешается в IP x.x.x.x, то и ваш IP x.x.x.x должен разрешаться в DNS имя mail.example.org
Проверить это можно командой nslookup x.x.x.x
Запись в обратной зоне доступна к изменению владельцу IP адреса, обычно это ваш провайдер. Если не настроить правильно обратную зону, большинство почтовых серверов будут отмечать ваши письма как SPAM.
DKIM, SPF, DMARC записи.
DKIM запись для доменов будет создана в процессе установки. Посмотреть ее можно командой cat filter/dkim/mail.pub
mail._domainkey IN TXT "v=DKIM1; k=rsa; ""p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA72iwPIqgo7Q91GEgNPafzwavpIYW0pm5Lm6T7Z65AcRS6R/acAZUaCLJiqZp8LpUwiUnjsCo0r2rOwMEGO83BQoe3kXdGUdgnngOYvS+AiQP5QOd9vZfYkhgAMrR9KAdl9dMaq1cd9PkxV4aQRwu2xiuXJfDZIMtSCn/25MaaiCUROw7VZmi/J/As/z1ya1lfXGS6Iy2yC0zbrO8G""wMoeM4YqyabONDJx4CpkynQ7WOexu27SClalNv0tIme7xSyKK2KDBf4ZmbUyWaZzz4/dDKUFJs3JAolFFoo/JGr7rI7d/JSO0ruUJyPM2pwv0NcO6E+0D28VVbAnWK3X7uQMQIDAQAB"
SPF запись может выглядеть так @ IN TXT "v=spf1 a mx ip4:x.x.x.x ~all"
DMARC запись _dmarc IN TXT "v=DMARC1;p=none"
Установка
- Запустите
git clone https://gitlab.com/argo-uln/docker-mail-server.git - Перейдите в директорию
cd docker-mail-server - Запустите файл предварительной настройки
./setup.sh. Что делает это скрипт смотрите ниже в разделе Комментарии к установке. - На предложение
Please enter MYSQL PASSWORD:(введите пароль для mysql) Please enter FQDN hostname:(введите полное имя хоста, пример mail.example.org)Please enter mail domain:(введите имя вашего домена, пример example.org)Please enter RSPAMD web access password:(введите пароль для вебинтерфейса RSPAMD)Please enter LDAP user admin password:(введите пароль пользователя admin для Openldap)Please enter LDAP user adressbook password:(введите пароль для LDAP пользователяaddressbook- имеет доступ на чтение адресной книги)Please enter the ip addresses separated by a space to access the services postfixadmin, rspamd. Default, access to them is closed:(введите ip адреса через пробел с которых будет предоставлен доступ к postfixadmin, rspamd, phpldapadmin)- Далее будет предложено
You can start the build and run with the command: docker-compose up -d(запустите команду для установки и настройки сервиса почтового сервера) - Запустите команду
docker-compose upи подождем, пока контейнеры соберутся и запустятся. - Откройте в браузере страницу https://mail.example.org/postfixadmin/setup.php (где mail.example.org замените на имя вашего сервера)
- Введите пароль для mysql.

- Прокрутите окно браузера вниз. Введите еще раз пароль для mysql. Создайте пользователя администратор postfixadmin. Есть ограничения. Пароль должен содержать не менее 5 символов (не мене 3 букв, 2 цифр, одного спец символа). Имя пользователя, что то типа admin@example.org (подставьте свой домен).

- Зайдите по ссылке https://mail.example.org/postfixadmin/login.php.
- Создайте почтовый домен example.org. Создайте пользователя admin@example.org. Пароль должен содержать не менее 5 символов (не мене 3 букв, 2 цифр, одного спец символа)
- Откройте web интерфейс почты https://mail.example.org/mail/. Логин: admin@example.org.
- Пропишите dkim запись в dns зонах всех ваших доменов. Для получения ключа запустите команду
cat filter/dkim/mail.pub
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=ваш-dkim-ключ" ) ;
- Вы можете проверить ваш ключ на сервисе https://dkimcore.org/tools/keycheck.html
- В поле
Selector:mail - В поле
Domain name:example.org - Нажмите -
Check
- В поле
Обратите внимание: Мы используем один ключ для всех наших доменов.
- Для доступа к серверу
RSPAMDоткройте страницу https://mail.example.org/rspamd/ Введите пароль для доступа на станицу. - Перейдите на вкладку
Сonfiguration. - Настройки:
Greylist4Probably Spam6Rewrite subject7Spam150 (Письма гарантированно пройдут и попадут в папку "Спам")
- Сохраните изменения.
Save action,Save cluster. - Протестируйте ваши письма на спам на сайте https://www.mail-tester.com/
Обратите внимание: В случае обнаружения вируса в письме, оно будет отброшено.
Комментарии к установке
Разберем что делает setup.sh.
- В процессе работы
setup.shустановится пакетphp-cli(если не был установлен ранее). - В корне сервера будет создана папка для почтовых ящиков
/mail, права на папку 777. - Из шаблона
.env.distбудет создан файл переменных окружения.env. - Из шаблона
nginx/service.conf.distбудет созданnginx/service.conf. В него будут добавлены ваши ip адреса для доступа к сервисамPostfixAdmin,Rspamd. - Из шаблона
openldap/ldif/addressbook.ldif.distбудет создан файлopenldap/ldif/addressbook.ldif - Из шаблона
openldap/ldif/ldap-add-ou-addressbook.ldif.distбудет создан файлopenldap/ldif/ldap-add-ou-addressbook.ldif - Из шаблона
openldap/ldif/oclAccess.ldif.distбудет создан файлopenldap/ldif/oclAccess.ldif - Из шаблона
openldap/conf/mysql_ldap.php.distбудет создан файлopenldap/conf/mysql_ldap.php. Этот файл будет запускаться один раз в час. Он считывает из базыMysqlдомены, пользователей. Создает вOpenldapадресную книгу, алиасВсем пользователям домена. В базеMysqlсоздается алиасВсем пользователям домена. В случае удаления пользователей адресная книга вOpenlpadобновляется. Так же обновляется алиасВсем пользователям доменав базеMysql. - Из шаблона
roundcube/config/ldap.php.distбудет создан файл конфигурацииroundcube/config/ldap.php - Из шаблона
roundcube/config/managesieve.php.distбудет создан файл конфигурацииroundcube/config/managesieve.php. - Из шаблона
postfixadmin/config.local.php.distбудет создан файл конфигурацииpostfixadmin/config.local.php. - Из шаблона
init/roundcube.sql.distбудет создан файлinit/roundcube.sql.
Переменные окружения
После запуска файла предварительной настройки ./setup.sh вас попросят ввести
MYSQL PASSWORD, FQDN hostname, mail domain, RSPAMD web access password, LDAP user admin password, LDAP user adressbook password, ip address.
- Из шаблона .env.dist будет создан файл переменных окружения .env
- Значение
MYSQL PASSWORDподставится в переменныеPOSTFIXADMIN_DB_PASSWORD,PA_SETUP_PASS,MYSQL_ROOT_PASSWORD,MYSQL_PASSWORD,ROUNDCUBEMAIL_DB_PASSWORDфайла .env. Также из значенияMYSQL PASSWORDгенерится переменнаяPA_SETUP_HASHдля файла конфигурации postfixadmin/config.local.php - Значение
FQDN hostnameподставится в переменныеMAILNAME,LE_FQDN,ROUNDCUBEMAIL_SMTP_SERVER,ROUNDCUBEMAIL_DEFAULT_HOSTфайла .env. Также значениеFQDN hostnameбудет использовано в файле roundcube/config/managesieve.php ИзFQDN hostnameбудут сгенерированы переменные LDAPBASEDNиROOTDN. Они используются в файлеopenldap/conf/mysql_ldap.php, который создает и обновляетАдресную книгуи алиасВсем пользователям доменавmysql - Значение
mail domainподставится в переменныеDOMAIN,POSTMASTER,LE_EMAILфайла .env и в файле postfixadmin/config.local.php RSPAMD web access passwordподставится в переменнуюCONTROLLER_PASSWORDфайла .envLDAP user admin passwordподставится в переменнуюLDAP_PASSфайла .env, используется файлеopenldap/conf/mysql_ldap.phpи в файлеroundcube/config/ldap.phpLDAP user adressbook passwordподставится в переменнуюADDRESSBOOK_PASSфайла .env, используется в файле `openldap/ldif/addressbook.ldifip addressдобавится в файл nginx/service.conf и откроет доступ с этих IP к сервисам Postfixadmin, RSPAMD
Описание переменных в файле шаблона .env.dist
| Переменная | Описание |
|---|---|
| POSTFIXADMIN_DB_TYPE=mysqli | |
| POSTFIXADMIN_DB_HOST=db | |
| POSTFIXADMIN_SMTP_SERVER=postfix | |
| POSTFIXADMIN_SMTP_PORT=25 | |
| POSTFIXADMIN_ENCRYPT=md5crypt | |
| POSTFIXADMIN_DB_USER=postfix | |
| POSTFIXADMIN_DB_NAME=postfix | |
| POSTFIXADMIN_DB_PASSWORD=_PASS_ | # Значение MYSQL PASSWORD из ./setup.sh |
| PA_SETUP_PASS=_PASS_ | # Значение MYSQL PASSWORD из ./setup.sh
|
| MYSQL_USER=postfix | |
| MYSQL_DATABASE=postfix | |
| MYSQL_ROOT_PASSWORD=_PASS_ | # Значение MYSQL PASSWORD из ./setup.sh
|
| MYSQL_PASSWORD=_PASS_ | # Значение MYSQL PASSWORD из ./setup.sh
|
| CONTROLLER_PASSWORD=_RSPAMD_ | # Значение RSPAMD web access password из ./setup.sh
|
| DOMAIN=_DOMAIN_ | # Значение mail domain из ./setup.sh
|
| MAILNAME=_MAILNAME_ | # Значение FQDN hostname из ./setup.sh
|
| POSTMASTER=admin@_DOMAIN_ | # Значение mail domain из ./setup.sh
|
| RELAYHOST=false | # false - не использовать, укажите имя smtp сервера, если необходимо пересылать все письма на удаленный хост |
| FILTER_MIME=false | # Включить/Отключить проверку типов файлов на уровне Postfix. Дополнительно Отредактируйте файл docker-mail-server/postfix/rootfs/etc/postfix/mime_header_checks
|
| FILTER_VIRUS=true | # Включить/Отключить проверку на вирусы |
| ENABLE_IMAP=true | # Включить/Отключить IMAP
|
| ENABLE_POP3=true | # Включить/Отключить POP3
|
| CONTROLLER_SECURE_NETWORK=172.16.0.0/12 | |
| RECIPIENT_DELIMITER=- | # Параметр Postfix recipient_delimiter. Он позволяет вам отправлять письма снаружи на user-всечтоугодно@example.com. Письмо будет доставлено в ящик user@example.com.
|
| TZ=Europe/Moscow | # Timezone, if set will be written to container's /etc/timezone
|
| LETSENCRYPT=true | # Включить/Отключить автоматическое получение и обновление сертификата |
| LE_EMAIL=admin@_DOMAIN_ | # Значение mail domain из ./setup.sh
|
| LE_FQDN=_MAILNAME_ | # Значение FQDN hostname из ./setup.sh
|
| LDAP_PASS=_LDAP_ | # Значение LDAP user admin password из ./setup.sh
|
| ADDRESSBOOK_PASS=_ADDRESSBOOKPASS_ | # Значение LDAP user adressbook password из ./setup.sh
|
| ROUNDCUBEMAIL_DB_TYPE=mysql | |
| ROUNDCUBEMAIL_DB_HOST=db | |
| ROUNDCUBEMAIL_DB_NAME=roundcube | |
| ROUNDCUBEMAIL_DB_USER=postfix | |
| ROUNDCUBEMAIL_DB_PASSWORD=_PASS_ | # Значение MYSQL PASSWORD из ./setup.sh
|
| ROUNDCUBEMAIL_SMTP_SERVER=tls://_MAILNAME_ | # Значение FQDN hostname из ./setup.sh
|
| ROUNDCUBEMAIL_DEFAULT_HOST=tls://_MAILNAME_ | # Значение FQDN hostname из ./setup.sh
|
| ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=20M | |
| ROUNDCUBEMAIL_PLUGINS=archive,zipdownload | |
| ROUNDCUBEMAIL_REQUEST_PATH=/mail/ |
Отдельные контейнеры, используемые в проекте:
| Контейнер | Описание | Источник | Порты |
|---|---|---|---|
| db | База данных для Postfixadmin, Roundcube | В проекте используется стандартный образ mariadb | port 3306(снаружи недоступно) |
| postfixadmin | Web интерфейс для администрирования почтового сервера | В проекте используется стандартный образ postfixadmin | port 443, https://mail.example.org/postfixadmin/login.php |
| nginx | Прокси сервер с поддержкой получения сертификатов LetsEncript, прокси для postfixadmin (доступ ограничен по ip), прокси для Roundcube (web клиент почты), прокси для web интерфейса RSPAMD (доступ ограничен по IP) | использован контейнер umputun/nginx-le:latest | port 80 для подтверждения домена LetsEncript, port 443 прокси к сервисам postfixadmin, Roundcube, RSPAMD |
| postfix | smtp сервер | build: postfix | только 25 порт |
| dovecot | IMAP, POP3, Submission, LMTP, Sieve сервер | build: dovecot | imap 110, imaps 143(STARTTLS), submission 587(STARTTLS), imaps 993(SSL), pop3s 995, lmtp port 2003 (снаружи недоступно), managesieve 4190 (STARTTLS) |
| filter | Сервер Rspamd | build: filter | port 11332 для общения с Postfix(снаружи недоступно), Web сервер статистики port 11334, снаружи https://mail.example.org/rspamd/ |
| redis | Сервер БД redis для Rspamd | Использован образ redis:alpine | port 6379, снаружи недоступно |
| virus | Сервер антивирус Clamav | build: virus | port 3310 для общения с Rspamd(снаружи недоступно) |
| roundcube | Веб клиент к электронной почте | использован образ roundcube/roundcubemail:latest | снаружи port 443, https://mail.example.org/mail/ |
| openldap | Openldap сервер | build: openldap | port 636 |
| restarter | Cron раз в сутки перезапускает контейнеры openldap, postfix, dovecot (для обновления сертификата LetsEncript) | использован image: docker |
HOWTO
Web интерфейс доступа к почте Roundcube (дополнительные возможности).
Откройте web интерфейс почты https://mail.example.org/mail/.
- Фильтры Sieve.
Откройте Настройки, Фильтры. Во вкладке Фильтры нажмите +. Появится окошко создания фильтра. Доступно многое, а именно возможность распределять письма по разным папкам, перенаправлять письма, или отправлять уведомления об отсутствии на рабочем месте. После создания фильтра нажмите сохранить.
- Адресная книга LDAP.
Нажмите в меню Контакты. Отобразится адресная книга LDAP. Обновляется один раз в час. В контактах отобразятся пользователи всех ваших доменов и алиасы Всем пользователям домена.
Настройка Thunderbird
Параметры сервера
- Тип сервера: Почтовый сервер IMAP
- Имя сервера:
mail.example.orgПорт:143- Имя пользователя:
admin@example.org- Защита соединения:
STARTTLS- Метод аутентификации:
Обычный пароль
Сервер исходящей почты
- Тип сервера: SMTP-сервер
- Имя сервера:
mail.example.orgПорт:587- Имя пользователя:
admin@example.org- Защита соединения:
STARTTLS- Метод аутентификации:
Обычный пароль
Адресная книга (Файл, создать, каталог LDAP)
Вкладка Основное
- Название:
mail.example.org- Имя сервера:
mail.example.org- Корневой элемент (Base DN):
ou=addressbook,dc=mail,dc=example,dc=org- Порт:
636- Имя пользователя (Bind DN):
cn=addressbook,dc=mail,dc=example,dc=org(вас попросят ввести пароль - это значение переменнойADDRESSBOOK_PASSфайла .env)XИспользовать защищенное соединение (SSL)Вкладка Дополнительно
- Не возвращать более чем
1000результатов- Область поиска
Поддерево- Фильтр поиска
(mail=*)- Способ аутентификации
простой
Sieve - правила фильтрации, используемые Dovecot.
- Письма помеченные как спам помещаются в папку Spam в ящике пользователя.
- Если письмо переносится пользователем в папку Spam, происходит обучение спам фильтра.
- Если письмо из папки Spam переносится в другую папку, то также происходит обучение спам фильтра.
Как включить проверку типов файлов на уровне Postfix?
- Отредактируйте файл
docker-mail-server/postfix/rootfs/etc/postfix/mime_header_checks
/name=[^>]*\.(bat|com|exe|dll|vbs|docm|doc|dzip)/ REJECT
- В файле
.env.distисправьте значение переменнойFILTER_MIME=true - Пересоздайте файл
.envзапустив ./setup.sh, или исправьтеFILTER_MIME=trueв файле.env. - Потребуется пересоздать контейнер postfix
RECIPIENT_DELIMITER
Значение по умолчанию этого параметра в .env RECIPIENT_DELIMITER=- Это позволяет вам отправлять письма снаружи на user-всечтоугодно@example.com. Письмо будет доставлено в ящик user@example.com.
Как сделать резервную копию баз контейнера db?
Из директории docker-mail-server запустите команду
source .env && docker-compose exec db mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > db-dump-$(date +%F_%H-%M-%S).sql
Как восстановить базы из архива?
source .env && docker-compose exec -T db mysql -uroot -p${MYSQL_ROOT_PASSWORD} < mariadb-dump.sql
Утилита IMAPSync
Помощь при переносе почтовы ящиков с одного почтового сервера на другой. Протестировано на Ubuntu 20.04. Взято https://www.ylsoftware.com/news/733
Утилиту необходимо запускать на отдельном хосте.
- Установим зависимости.
sudo apt install \
libauthen-ntlm-perl \
libclass-load-perl \
libcrypt-ssleay-perl \
libdata-uniqid-perl \
libdigest-hmac-perl \
libdist-checkconflicts-perl \
libencode-imaputf7-perl \
libfile-copy-recursive-perl \
libfile-tail-perl \
libio-compress-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libmail-imapclient-perl \
libmodule-scandeps-perl \
libnet-dbus-perl \
libnet-ssleay-perl \
libpar-packer-perl \
libreadonly-perl \
libregexp-common-perl \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-fatal-perl \
libtest-mock-guard-perl \
libtest-mockobject-perl \
libtest-pod-perl \
libtest-requires-perl \
libtest-simple-perl \
libunicode-string-perl \
liburi-perl \
libtest-nowarnings-perl \
libtest-deep-perl \
libtest-warn-perl \
make \
cpanminus
- Скачаем imapsync
git clone https://github.com/imapsync/imapsync.git cd imapsync- Создадим файл
mails.csv
old_login|old_pass|new_login|new_pass|
Где Здесь "old_login" и "old_pass" - логин и пароль пользователя на старом сервере, а "new_login" и "new_pass" - логин и пароль пользователя на новом сервере.
- Создадим файл
sync.sh - Дадим права на запуск
chmod +x sync.sh - Содержимое файла sync.sh
#!/bin/bash
cd `dirname $0`
for line in `cat mails.csv | grep -v ^#`; do
M_USER=`echo ${line} | cut -d '|' -f1`
M_PASS=`echo ${line} | cut -d '|' -f2`
N_USER=`echo ${line} | cut -d '|' -f3`
N_PASS=`echo ${line} | cut -d '|' -f4`
echo "Processing ${M_USER}..."
./imapsync --host1 imap.yandex.com --port1 993 --user1 ${M_USER} --password1 ${M_PASS} --ssl1 --host2 mail.example.org --port2 143 --user2 ${N_USER} --password2 ${N_PASS} --tls2
if [ $? -ne "0" ]; then
echo ${M_USER} >> mail_errors
fi
done
- После выполнения скрипта в файл "mail_errors" будут записаны логины пользователей, для которых перенос почты не удался.
Если что-то пошло не так.
- Из директории docker-mail-server запустите команду
docker-compose down - Потом
docker system prune -a --volumesочистка всех остановленных контейнеров и неиспользуемых сетей - Поправьте ошибки и запустите
docker-compose up -d - Пересоздавать пользователей в этом случае нет необходимости, просто подтвердите пароль, выполнив инструкцию в пункте ниже
- Откройте в браузере страницу https://mail.example.org/postfixadmin/setup.php (где
mail.example.orgзамените на имя вашего сервера) - Введите пароль mysql
- Для полного удаления всех данных удалите папку /mail и директорию с проектом docker-mail-server
- Посмотреть логи
docker-compose logs -f
Служебные пользователи доменов
- При создании нового домена в
PostfixAdminавтоматически создаются адреса алиасыabuse@newdomain,hostmaster@newdomain,postmaster@newdomain,webmaster@newdomain. Они автоматически переадресовывают почту на основновной домен, на почтовый ящикadmin@example.org
Благодарности
Смотрите также
- Данный проект основан на инструкции ISPMail guide и проекте Docker-mailserver.
- Также реализовано автоматическое получение и обновление сертификата LetsEncript, использован проект NGINX-LE - Nginx web and proxy with automatic let's encrypt.
Лицензия
MIT