Типичный почтовый сервис состоит из множества компонентов: 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-адрес.