Компания жила в Яндекс 360: около ста сорока ящиков на двух доменах плюс примерно пять общих. Всё работало.

Причин уходить было две, и обе не технические. Своё железо и мини-серверная уже стояли — платить за облако поверх этого не хотелось. И хотелось полного контроля над тем, где лежит переписка.

Требования оказались короткими. Работают люди в основном через веб. Нужны личные — именно личные, не общие — календари и адресные книги по CalDAV и CardDAV.

Дальше был выбор из четырёх вариантов, и я хочу рассказать не столько про сами варианты, сколько про критерий. Потому что критерий у меня был не тот, с которого обычно начинают.

Коротко

  • Сравнивал iRedMail, Zimbra OSE, связку Postfix + Dovecot и mailcow.
  • Выбрал mailcow: Docker, SOGo с CalDAV/CardDAV из коробки, встроенный rspamd.
  • Критерий был не «что мощнее и гибче», а «что переживёт меня в этой роли».
  • Голый Postfix гибче всех — и именно поэтому проиграл.

Четыре кандидата

Голый Postfix плюс Dovecot. Самый честный вариант: собираешь ровно то, что нужно, без лишнего. Я бы его собрал, и он работал бы лучше всех по гибкости.

Zimbra OSE. Взрослое решение с долгой историей и полноценным групповым функционалом.

iRedMail. Сборка тех же компонентов с установщиком и панелью, ближайший конкурент по духу.

mailcow. Всё в Docker, веб-интерфейс администрирования, SOGo для веб-почты и календарей, rspamd для антиспама.

Если свести сравнение в таблицу, получается вот что:

Критерий mailcow iRedMail Zimbra OSE Postfix + Dovecot
Установка docker compose, ~30 мин скрипт на чистую ОС тяжёлая всё руками
Веб-почта SOGo Roundcube / SOGo своя ставить отдельно
CalDAV/CardDAV из коробки (SOGo) через SOGo есть ставить отдельно
Антиспам rspamd встроен Amavis / SpamAssassin встроен ставить отдельно
Обновление update.sh вручную сложно вручную
Ресурсы на ~140 ящиков 8 ГБ хватает меньше больше меньше всего

Обратите внимание на последнюю строку. По ресурсам mailcow проигрывает двум вариантам из четырёх — и это честная цена за то, что всё остальное идёт в комплекте. Восемь гигабайт памяти сегодня дешевле, чем человеко-часы на сборку и последующее сопровождение того же набора вручную.

Почему победил mailcow

Ни одного признака, по которому он выиграл бы с разгромом. Выиграл по сумме.

Всё живёт в Docker. Это значит предсказуемое обновление и предсказуемый перенос. Не «запустил скрипт и надеешься», а понятный набор контейнеров, который можно поднять заново.

SOGo даёт веб-почту и CalDAV с CardDAV из коробки. Вот это было решающим по требованиям: личные календари и адресные книги нужны были сразу, и городить их отдельным сервисом поверх почты не хотелось.

rspamd встроен. Антиспам не надо прикручивать, настраивать интеграцию и потом отдельно вспоминать, как она устроена.

Масштаб совпал. Сто сорок ящиков — это не три и не десять тысяч. mailcow ложится на такой размер спокойно.

А теперь про критерий

Обычно выбирают по вопросу «что мощнее и гибче». По этому вопросу победил бы голый Postfix с Dovecot, причём уверенно: нет ничего гибче, чем собрать систему из кирпичей самому.

Но гибкость не бесплатна. Её оплачивает тот, кто будет это эксплуатировать через год, когда детали забудутся — в том числе я сам, но уже не помнящий, почему в конфиге написано именно так. У самосборной системы нет документации, кроме твоей памяти, и нет сообщества, которое ответит на вопрос про твою конкретную сборку.

Поэтому вопрос я себе задал другой: что переживёт меня в этой роли. Не «что я смогу настроить», а «что останется понятным, когда настраивать будет некому».

С такой формулировкой Zimbra на сто сорок ящиков оказалась из пушки по воробьям: много возможностей, которые никто не попросит, и вес, который придётся носить. iRedMail шёл вплотную с mailcow, но ничего не добавил на весы — а раз не добавил, победил тот, у кого докерная модель и SOGo уже в комплекте.

Голый Postfix проиграл именно тем, чем был лучше всех.

Что получилось

mailcow развёрнут и работает. Второй домен уже в боевой эксплуатации, пользователи подключаются.

Оговорюсь честно: это не значит, что self-hosted почта — хорошая идея вообще. Для большинства компаний это плохая идея, и решение принималось не из любви к искусству: железо уже стояло, требования были понятны, бюджет считался. Если всего этого нет, облако почти наверняка дешевле и спокойнее.

Но если решение уже принято, то выбирать стоит не по списку возможностей, а по тому, кто и чем будет за них платить в эксплуатации.

О том, что было дальше — как я готовил виртуалку, почему не выпускался сертификат и почему у людей в почтовом клиенте папки оказались пустыми, — пишу отдельными разборами.