Здравствуйте, господа.
Не подскажете ли по следующему вопросу: хочу подобрать правильный IMAP-сервер под корпоративную почту организации. Только наш mailflow имеет несколько специфический вид, и требования тоже, соответственно, специфические. Попробую описать насколько возможно подробно, поэтому заранее извиняйте, если получится длинно.
Итак, первая и основная "хотелка": хочу чтобы IMAP-сервер хранил письма в файловой системе и делал как можно меньше предположений относительно того, как они туда попадают, модифицируются и удаляются оттуда. Т.е., грубо говоря, чтобы положить письмо в почтовый ящик пользователя мне нужно было бы просто скопировать файл с этим письмом в соответствующую папку, и удалить его - аналогично (ну и конечно, чтобы сам сервер это всё умел делать по IMAP-командам от клиентов). При этом, чтобы файл мог являться хард- или даже симлинком на другой файл, и IMAP-сервер этот факт бы нисколько не смущал. Фактически хотелось бы, чтобы IMAP-сервер представлял собой своего рода шлюз из файловой системы в IMAP, по возможности с минимумом оверхеда. Прочитав по теме, нашёл, что примерно такую схему хранения информации предполагает формат Maildir и его модификации. Но вот с точки зрения его реализаций у меня закрались сомнения такого рода: все серверы, поддерживающие этот формат (а я смотрел описания двух - курьер и dovecot, даже не знаю есть ли другие), не ограничиваются только файлами с письмами, а хранят ещё где-либо дополнительную служебную информацию. И если поместить файл или линк на него в нужный каталог - проблема не большая, то синхронизировать ещё и какие-то индексные файлы в соответствии с добавленным или удаленным письмом я вряд-ли сумею. А вот, к примеру, Dovecot LDA "takes mail from an MTA and delivers it to a user's mailbox, while keeping Dovecot index files up to date". Даже если Dovecot сам в состоянии обнаружить сторонние изменения файловой системы и перестроить свои индексы, не будет ли это слишком затратной операцией для того, чтобы строить на этом основной поток почты? Ответа на этот вопрос мне найти не удалось. Если кто имел плотный опыт общения с этими зверями, скажите, можно ли так делать, или это не наш метод?
На случай если кто-то не может взять в толк, зачем такое может понадобиться, опишу задачу целиком: имеется множество пользователей со своими индивидуальными учетными записями (логинами, виртуальными или нет - не так важно). Почтовых адресов у этих пользователей (в данной задаче) нет. Имеется также множество ролевых почтовых адресов, типа info@..., support@... и т.д. Почта, приходящая на эти адреса, попадает в систему и раскладывается всем пользователям в соотвтетсвии с установленными для них правилами. Отправленная пользователями - тоже. То есть раскладываются не просто в inbox, а по папкам этих пользователей. Естественно, может оказаться, что какое-то письмо конкретному пользователю вообще не попадает (нет соответствующего правила), но чаще получается так, что одно входящее письмо попадает не просто всем нескольким десяткам пользователей, но и ещё в пять-десять тематических папок у каждого из них. Поэтому мне очень хочется, чтобы почтовый сервер понимал линки, иначе легко получается сотня-две копий одного и того же письма. Shared mailboxes, которые умеет Dovecot, не решают проблему, потому что в случае их использования письмо, удаленное одним пользователем, удаляется у всех, а это недопустимо.
Сейчас такая система работает под оффтопиком, т.е. под Microsoft Exchange, но с увеличением количества сообщений эта система становится всё более неуправляемой. Кроме того, в его новых версиях уже не работают "линки", исключающие многократное дублирование одного и того же письма. В старых оно хоть и делалось через ж.пу, но реально работало. В принципе, гейт FS<->IMAP меня бы устроил и под виндой, даже больше, чем под юниксом (софт проще переделывать), но единственное подобие стандарта на это - Maildir - принципиально под виндой не жилец, а с "нестандартом" второй раз связываться не хочется.
Спасибо, что дочитали :-)