В этой статье мы рассматриваем один из вариантов реализации масштабируемой архитектуры большой почтовой системы.
6 декабря 2012 г. Google прекратил регистрацию новых аккаунтов для бесплатной версии Google Apps.
У клиентов
нашей компании постоянно возникает потребность в электронной почте, обслуживающей их сайты.
Раньше мы настраивали им Google Apps, но после 6 декабря, изучив предлагаемые на рынке решения, решили, что настала пора строить собственную почтовую систему.
Как известно, аппетит приходит во время еды. Если уж решились строить что-то свое, то тогда стоит сразу закладывать возможности для роста.
Для проектируемой почтовой системы были сформулировали следующие требования:
- масштабируемость (неограниченное количество обслуживаемых доменов, общий объем почтовых ящиков 100 терабайт и больше);
- отказоустойчивость (все промежуточные сервисы должны быть продублированы);
- расширяемость (добавление новых узлов в систему должно быть легким и простым).
Начали с выбора хранилища под письма...
На самом деле выбор был небольшой:
- dovecot/cyrus с хранением в файловой системе через maildir/mailbox;
- dbmail с хранением в базе данных.
После оценки количества сервисов, предоставляемых «из коробки», а также изучения нюансов использования, нами было решено остановиться на
dbmail.
Вот краткий список вкусностей, которые предоставляет dbmail:
- доступ к ящикам через IMAP, POP3;
- sieve-скрипты для сортировки почты;
- прием почты через smtp и lmtp протоколы;
- администрирование через cli и SQL-запросы.