@ti_zh_vrach
Бывший аптекарь.

Как лучше обзавестись self-hosted почтой?

Прошу совета, чтобы сориентироваться в вопросе.

Недавно я принял решение обзавестись своим почтовым сервисом для личных нужд. Меня что-то допекла ситуация с тотальным сбором почтовых адресов и отношением скрепных почтовых сервисов к простому юзеру. А иностранные сервисы теперь не являются надёжным решением из-за перспективы неиллюзорного окукливания.

Что мне нужно:
1. Почта. Просто почта. Без календарей, сообществ, дисков и прочих свисто-дуделок.
2. 10minutemail, только своё.
3. Какой-то рабочий антиспам и базовая защита данных.

Что у меня есть:
1. Немножко для себя "администрирую" пару VDS. Ну то есть как... ssh на какой-то порт перевесить, создать юзеров с разными правами, пару утилит поставить. По мелочи, с гуглом уткой в руках.
2. Программирую. В основном на python. На моей совести один веб-сервис на работе (django) и там же горсть десктопных программ под win (что-то даже с gui).
3. CI/CD как-то в gitlab'е сооружал. Оно всего пару раз сильно сломалось.

Что рассматриваю, но не могу определиться:
1. Взять готовое опенсорсное и бесплатное (пока) решение. Развернул, конфиг потыкал, забыл. Думаю на python, т.к. самому интересно поковыряться. При этом, с django под капотом видел только один, остальные - с flask.
2. Написать самому. Это сразу двух зайцев: и себе сделал, и на собеседовании показал.

А теперь вопросы:
1. Насколько трудоёмко будет написать такой почтовый сервер самому?
2. Какие частые проблемы возникают в эксплуатации готовых решений?
3. Как скрепные сервисы, почтовые и не только, реагируют на самодельную почту, есть тут какие-то проблемы?
4. Нужно ли регистрировать домен для своей почты?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 3
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Насколько трудоёмко будет написать такой почтовый сервер самому?

Простой, обрабатывающий только базовый RFC822 - несложно, но при этом половина привычных фич работать тупо не будет ;) Если же морочится поддержкой всего-всего, что уже напридумывали - нужно прочитать все RFC, которые связаны с темой :)
Какие частые проблемы возникают в эксплуатации готовых решений?

В эксплуатации самих решений, как правило особых проблем нет. Проблемы возникают обычно с анти-(спамом, вирусом, чертом лысым). Шифрование, сертификаты, SPF/DKIM/DMARC etc.
Как скрепные сервисы, почтовые и не только, реагируют на самодельную почту, есть тут какие-то проблемы?

Как человек, много лет содержщий собственную почту (на собственном сервере, стоящем в собственной квартире :) ) скажу, что плевали они на это. Протоколов слава Богу придерживаются - и ладно.
Нужно ли регистрировать домен для своей почты?

Доменное имя? Конечно. И еще белый IP нужен и MX-запись, направляющая на него почту.

Обычные проблемы - это:
- сделать так, чтобы твои письма не уходили в спам
- сделать так, чтобы тебя не задробили спамом
Первое обычно решается через SPF/DKIM/DMARC иже с ними, второе - через greylistng и черные списки

Думаю на python, т.к. самому интересно поковыряться.

Не путайте жабу с мотоциклом. Почтовый сервер - это обычно два независимых компонента - SMTP-сервер (тот, что принимает письма и мира и отправляет их в мир) и IMAP-сервер (тот, что передает почту в почтовый клиент - Thunderbird, Outlook etc). Плюс дополнительные модули. Веб-интерфейс к почте - отдельный продукт, с двумя первыми обычно не связанный (кстати, пишутся сервера обычно на С). Антиспам - это еще отдельный продукт (может быть, если морочиться чем-то типа DSPAM).
Ответ написан
Комментировать
ValdikSS
@ValdikSS
Типичный почтовый сервис состоит из множества компонентов: Message Delivery Agent (MDA) обеспечивает обработку входящих писем, Message Transfer Agent (MTA) отвечает за обработку исходящих писем, их отправку и доставку. Также пользователю необходим IMAP-сервер, для получения писем и работы ними; SMTP нужен для отправки и получения писем как для пользователей, так и для серверов.
Кроме этого минимального набора используются различные внешние обработчики: антиспам-системы, антивирусы, фильтры, DNSBL, и т.п.
Также сервису необходим почтовый веб-интерфейс, который может использовать обычный IMAP/SMTP-доступ, а может общаться с серверами через собственные API.

1. Насколько трудоёмко будет написать такой почтовый сервер самому?

Написать минимальный рабочий MDA+MTA с нулевыми знаниями устройства почты и протоколов так, чтобы ваши письма принимали другие почтовые сервисы, а ваш сервер не мог принять неправильно сформированную ерунду, при этом не отвергал бы не полностью соответствующие стандарту письма (которые встречаются регулярно) — задача на 2-3 недели full time для меня. Минимально реализовать весь стек — не менее нескольких месяцев.

2. Какие частые проблемы возникают в эксплуатации готовых решений?

Не смогу ответить на этот вопрос с точки зрения обывателя, у меня не возникает каких-либо частых проблем, связанных с эксплуатацией exim4/postfix/dovecot сотоварищи.

3. Как скрепные сервисы, почтовые и не только, реагируют на самодельную почту, есть тут какие-то проблемы?

Если всё настроено корректно, то и доходить будет нормально. Если ваш собственный сервер соответствует стандартам, текущим требованиям к доставке, то проблемы могут быть только на сетевом уровне или с доверием домену и IP-адресу, что не имеет непосредственного отношения к коду.

4. Нужно ли регистрировать домен для своей почты?

Вам потребуется не только домен, но еще и IP-адрес.
Ответ написан
Комментировать
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
1. Насколько трудоёмко будет написать такой почтовый сервер самому?

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

2. Какие частые проблемы возникают в эксплуатации готовых решений?

Главная проблема -- ниже, в п.3.

3. Как скрепные сервисы, почтовые и не только, реагируют на самодельную почту, есть тут какие-то проблемы?

Не знаю какие сервисы вы называете "скрепными", но основные проблемы у вас будут с сервисами из "свободных" стран, с "открытым рынком", как говорится, образцов демократии.

Если у вас будет идеально чистый IP и вы всё настроите максимально точно, то возможно, что на адреса gmail ваши письма будут доходить даже в inbox.
На доставку пользователям майкрософта (live. / hotmail. / outlook.com) надеяться почти наверняка не стоит, скорее всего, там письма не будут попадать даже в спам.

В целом же, для того, чтобы доставка от неизвестного сервиса была стабильной, вам нужно, чтобы с вашего IP шёл определённый поток писем (не большой и не маленький) и чтобы у этих писем был очень низкий процент пометок как спам -- ориентируйтесь на 0.5-0.6%.

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

4. Нужно ли регистрировать домен для своей почты?

Разумеется. Ещё и IP-адрес, и хостер/тариф, который позволяет выставить на нём необходимые настройки.

Также учтите, что не все домены верхнего уровня "одинаково белые". Есть "TLD niggers", письма с которых по умолчанию будут пессимизироваться.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Голый почтовый сервер, умеющий только SMTP - не проблема, протокол-то текстовый, как HTTP. Насчёт IMAP не знаю.
Проблема - сделать так, чтобы письма с твоего сервера не летели в /dev/spam автоматом у всех получателей.
Вот для этого потребуется конкретно обмазать это всё всякими подписями, сертификатами, и так далее.
Я даже точный список привести затрудняюсь...
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. Размер исходников одного из самых распространённых серверов - postfix - около 10 мегабайт. Причём это только SMTP-сервер, для работы с клиентами понадобится ещё POP3/IMAP-сервер.
2. Проблемы, в основном, не с самими решениями, а вокруг них - корректная настройка прямого и обратного DNS, DKIM, SPF, DMARK, спам-фильтров.
3. Абсолютно без разницы, что за сервер - самописный или готовое решение, если он правильно настроен и соблюдает стандарты.
4. Да. Нужен свой делегированный домен и настройка обратного DNS (PTR-запись) у интернет-провайдера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы