Форум программистов, компьютерный форум, киберфорум
Maks
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

История ввода в эксплуатацию одного почтового сервера

Запись от Maks размещена 19.04.2023 в 08:42. Обновил(-а) Maks 21.03.2026 в 09:19
Показов 4609 Комментарии 0
Метки bash, linux, mail, ubuntu

Приветствую, коллеги.
Как известно, яндекс.почта для домена почти стала платной, что в свою очередь заставило многих админов мигрировать на другие платформы, дабы не тратиться на содержание ящиков. Представляю Вашему вниманию материал по вводу в эксплуатацию собственного сервера Mailcow. Данная запись не претендует на полноценный гайд по реализации собственного почтового сервера, я всего лишь подскажу порядок установки, опишу проблемы с которыми я столкнулся и их решениями.
Итак, начнем.
Первым делом устанавливаем операционную систему, я установил Ubuntu Server 22.04.
Если установка линукса производится на виртуальную машину, то следует создать не динамический виртуальный диск, а диск фиксированного размера (дальше поймете почему).
Какая бы из версий линукса не была бы у Вас установлена, настоятельно рекомендую перед установкой Mailcow выполнить обновление:
Bash
1
apt-get update && apt-get upgrade -y
Будет нелишним установить актуальный часовой пояс (в моем случае ЕКБ)
Bash
1
timedatectl set-timezone Asia/Yekaterinburg
На всякий случай напомню, что у системы должен быть статический ip-адрес, поскольку необходимо будет выполнить проброс портов на маршрутизаторе, я пробросил порты 25, 465, 993 и 995.
Порты веб 80 и 443 выбрасывать в мир не стал из соображений безопасности.
Из всех найденных мною гайдов по установке Mailcow, самое действенное, как ни странно, это инструкция с самого сайта: https://docs.mailcow.email/i_u_m/i_u_m_install/ т.е. сперва заходим на сайт https://mailcow.email/ далее переходим в "Docs=>Installation, Update & Migration=>Installation".

Для наглядности: https://www.youtube.com/watch?... el=RomNero

Итак, мы установили Mailcow и зашли на главную страницу. Первое на что хочу обратить Ваше внимание, это на графу Использование дискового пространства: /dev/mapper/ubuntu--vg-ubuntu--lv = 106Gb.
Выполнение дальнейших операцию по увеличению объема доступно только для виртуальных дисков фиксированного объема.
Так вот для расширения дискового пространства Mailcow на весь объем диска необходимо выполнить следующие команды:
Bash
1
2
3
4
5
6
# Увеличить физический том (pv) до максимального размера
pvresize /dev/sda3
# Расширить логический том (LV) до максимального размера
lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# Развернуть файловую систему
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Не забываем перезагрузиться:
Bash
1
reboot
Смена главной страницы с админки на страницу входа SOGo
Нужно зайти в директорию /opt/mailcow-dockerized/data/web/ и переименовать файл index.php в любой другой. Главное, чтобы имя файла не совпадало с уже имеющимися в директории:
Bash
1
2
cd /opt/mailcow-dockerized/data/web/
mv index.php adm.php
Затем создаем новый файл index.php:
Bash
1
nano index.php
И добавляем в него следующий код:
Bash
1
2
3
4
<?php
header('Location: https://' . $_SERVER['HTTP_HOST'] . '/SoGo');
exit;
?>
Сохраняем файл и заходим на наш почтовый домен - mail.example.com и попадаем сразу на страницу https://mail.example.com/SOGo/

Установка phpMyAdmin для управления СУБД
Учитывая то, что Mailcow состоит из контейнеров docker, phpMyAdmin также будет инсталлироваться в docker:
Bash
1
docker run -d --restart unless-stopped --name phpmyadmin --env PMA_HOST=mysql-mailcow --network mailcowdockerized_mailcow-network -p 8181:80 phpmyadmin/phpmyadmin
После проделанной операции phpMyAdmin будет доступен по адресу https://mail.example.com:8181.
Логин и пароль для подключения к БД находится в конфигурационном файле Mailcow:
Bash
1
nano /opt/mailcow-dockerized/mailcow.conf

Установка сертификатов SSL от хостера
Следующим шагом, я выполнил установку сертификатов SSL, которые купил у хостера. Есть вариант их генерировать, но заниматься этим каждые 3 месяца не особо хочется, поэтому опишу только процедуру установку уже готовых сертификатов:
Первым делом инсталлируем cifs
Bash
1
apt install cifs-utils
Далее нам необходимо подключить сетевую папку, в которой находятся наши сертификаты:
Создаем каталог для монтируемой папки:
Bash
1
2
3
4
#Переходим в нужный каталог
cd /home/user
#Создаем папку
mkdir share
Монтирование папки (шары) с сертификатами
Bash
1
mount -t cifs //10.10.0.25/ssl /home/user/share -o username=user,password=pass
Далее, при установке своих сертификатов документация Mailcow рекомендует отключить Let’s Encrypt
Bash
1
2
3
4
5
nano /opt/mailcow-dockerized/mailcow.conf
nano /opt/mailcow-dockerized/data/conf/postfix/main.cf
#Добавить/изменить записи
SKIP_LETS_ENCRYPT=y
ONLY_MAILCOW_HOSTNAME=y
Теперь необходимо выполнить перезапуск контейнеров:
Bash
1
2
cd /opt/mailcow-dockerized/
docker-compose up -d
После оного переходим в каталог со скаченными сертификатами:
Bash
1
cd /home/user/share/
Конвертируем сертификат и ключ в *.pem
Bash
1
2
openssl x509 -in mail.example.com.crt -out mail.example.com.pem
openssl rsa -in mail.example.com.key -out mail.example.com.key.pem
Далее, выполняем установку сертификатов:
Bash
1
2
cp /home/adminsge/share/mail.example.com.pem /opt/mailcow-dockerized/data/assets/ssl/cert.pem
cp /home/adminsge/share/mail.example.com.key.pem /opt/mailcow-dockerized/data/assets/ssl/key.pem

Проблемы после ввода в продакшн и их решения
Первое, с чем я столкнулся, это с тем, что некоторые письма попадали в спам, а некоторые не доходили вовсе. Сначала я занес свой домен во все доступные сервисы постмастера известных почтовых систем, потом отключил спам-фильтра в конфигурационном файле postfix:
Bash
1
nano /opt/mailcow-dockerized/data/conf/postfix/main.cf
Закомментировал все хосты после строчки postscreen_dnsbl_sites
---------------
Далее, на один почтовый ящик перестали доходить письма от любых отправителей, в логе postfix на этот счет отображались записи вида milter-reject: END-OF-MESSAGE ...
Решением было следующее:
Снова открыл конфигурационный файл postfix и закомментировал значение параметра smtpd_milters
---------------
Третьей вполне ожидаемой проблемой стало то, что почтовые клиенты на операционных системах Windows 7 при отправке/получении почты выдавали ошибку 0x800CCC1A – Ваш сервер не поддерживает указанный вами тип шифрования.. Решение несложное:
1. Устанавливаем обновление kb3140245;
2. Устанавливаем исправление MicrosoftEasyFix51044;
3. Вносим изменения в реестр:
Code
1
2
3
4
5
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
Для удобства материалы загрузил сюда: win7 TLS.7z
4. Устанавливаем Outlook не ниже 2016 версии, либо Thunderbird.
Метки bash, linux, mail, ubuntu
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru