Как реализовать совместный доступ к почтовым ящикам

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Иван Петров
рядовой
Сообщения: 13
Зарегистрирован: 2017-02-28 19:22:39

Как реализовать совместный доступ к почтовым ящикам

Непрочитанное сообщение Иван Петров » 2017-03-07 14:16:36

Не знаю, насколько уместен здесь этот вопрос.

Сейчас имеем почтовые ящики otdel1@company.ru ... otdelN@company.ru, расположены у хостера, доступ к ним по POP3/IMAP4.
К каждому из этих ящиков имеют доступ сотрудники этих отделов (по несколько человек на каждый ящик).
С почтой они работают из Thunderbird/Outlook Express по протоколам SMTP/POP3.
Скачивают почту к себе на компьютер, и делают с ней что хотят, отправляют по SMTP хостеру.

Проблема в том, что почтовые базы в программах на клиентских компьютерах переполняются, в общем, требуют настройки и обслуживания.
А пользователи как всегда делают удивленные глаза, как будто слышат об этом в первый раз - не хотят сами чистить свои базы.
Хотелось бы забирать почту на свой локальный почтовый сервер и дать доступ клиентам к почте через веб-интерфейс по IMAP.
В этом случае обслуживание предельно упростится.

Но как обеспечить совместный доступ нескольких человек к одному почтовому ящику?
Если их всех пускать в один ящик, то: допустим, первый получил почту, и удалил из ящика все ненужное ему, или разложил почту по папкам. Другие пользователи своих писем уже не получат или не найдут.
Если создать много пользователей, и копировать входящую почту в их ящики, то придется хранить огромные объемы информации - в 10-20 раз больше. А учитывая, что клиенты хотят хранить почту за несколько лет, и что нужно делать резервное копирование почты, это не лучшее решение.
Копировать в папки пользователей не файлы почты, а ссылки на них? Как это делается, и не возникнет ли проблем?

Иными словами, вопрос можно свести к такому - как на почтовом сервере создать локальные списки рассылки, чтобы хранящаяся в них информация не дублировалась у каждого члена рассылки, а хранилась в единственном экземпляре?
Предусмотрено ли такое в почтовых системах? Существуют ли какие-то решения?

На почтовом сервере предполагается использовать Postfix + Dovecot + Fetchmail + Roundcube. Возможен вариант на Exim.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Иван Петров
рядовой
Сообщения: 13
Зарегистрирован: 2017-02-28 19:22:39

Как реализовать совместный доступ к почтовым ящикам

Непрочитанное сообщение Иван Петров » 2017-03-07 17:32:26

Что-то видимо нашел:
http://wiki.dovecot.org/SharedMailboxes
http://wiki.dovecot.org/Namespaces
Но что из этого будет правильным вариантом? И какие рекомендации по настройке? (Иначе придется долго разбираться с каждым вариантом, чтобы узнать его плюсы и минус и подходит он или нет).

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Как реализовать совместный доступ к почтовым ящикам

Непрочитанное сообщение xM » 2017-03-08 14:14:44

Думаю, и так и эдак это реализуемо.
Я делал в своё время через namespaces и sieve.
IT voodoo blog https://kostikov.co

Иван Петров
рядовой
Сообщения: 13
Зарегистрирован: 2017-02-28 19:22:39

Как реализовать совместный доступ к почтовым ящикам

Непрочитанное сообщение Иван Петров » 2017-03-08 18:27:04

Сегодня утром проснулся, и понял, что знаю решение!

Все очень просто, даже элементарно. А fetchmail мне видимо будет не нужен.
Я скриптом на Perl загружаю с внешних почтовых ящиков почту, помещаю ее в определенные папки, а в папках пользователей (формат Maildir) создаю символические линки на загруженные почтовые файлы. Файлы в исходных папках неизменны, а в папках пользователей с ссылками можно делать все, что угодно (переименовывать, передвигать, удалять). В качестве имени файла будет использоваться Message-Id, поэтому сразу решается и проблема дублирования писем, когда один пользователь входит сразу в несколько групп, а письмо послано в эти разные группы.
Вся почта будет храниться в одном единственном экземпляре.
Наверное, общие папки лучше разбить по годам (info.2017, info.2018), чтобы не было в одной папке несколько сотен тысяч писем.

Можно и с fetchmail, но зачем пытаться адаптировать чужую утилиту (нужно как-то получать имена файлов новой почты), если проще сделать все в своем скрипте?
xM писал(а): Я делал в своё время через namespaces и sieve.
namespaces - с этим я пока незнаком, тут у меня брешь в познаниях. Как-то все время обходился POP3, и IMAP не использовал.
Подскажите, при использовании namespaces пользователи могут удалять/передвигать общие файлы независимо друг от друга? У меня есть подозрение, что нет, что они будут видеть все файлы, и лишь можно будет отмечать и ставить прочитано/не прочитано.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Как реализовать совместный доступ к почтовым ящикам

Непрочитанное сообщение xM » 2017-03-08 18:34:17

Подскажите, при использовании namespaces пользователи могут удалять/передвигать общие файлы независимо друг от друга? У меня есть подозрение, что нет
Могут все, в зависимости от данных прав. А лучший способ развеять подозрения это чтение документации и её экспериментальная проверка.
Реализуемо средствами Dovecot.
IT voodoo blog https://kostikov.co