Проблема
Год назад наша компания рассталась с ключевым сотрудником отдела продаж. Встал вопрос о восстановлении почтовой переписки. На почтовый ящик этого пользователя поступали все входящие запросы. Какие-то письма переадресовывались по отделу, с кем-то велась переписка, озвучивались цены. Не смотря на то, что доступ к письмам по протоколу IMAP позволяет хранить и структурировать письма непосредственно на сервере, работать с таким материалом сложно. Входящие и исходящие письма хранятся в разных местах, нет сортировки по перепискам, долгий поиск, часть писем может быть просто удалена.
Поиск решения
Копировать всю переписку на другие эл. ящики - задача неблагодарная, ведь преимуществом будет только то, что письма не будут удаляться. Но письма все также будут неудобно отсортированы. Хорошо, если под контроль нужно поставить один ящик, а если их десятки или сотни?
После этого случая мы обсуждали в рассылке, как лучше организовать хранение истории. В первую очередь волновал объем файлового хранилища и доступ к нему. Довольно быстро мы разработали и внедрили у себя решение. Открывая филиал в Москве вдруг обнаружилось, что это решение так и не реализовано в утилитах Calculate.
Реализация
Итак встречайте - Calculate Utilities 2.1.14. Ключевое изменение в новой версии серверных утилит - поддержка истории почтовой переписки.
В настройке почтового сервера появились следующие параметры:
# cl-setup --help-mail
...
--history CONDITION включить или отключить сохранение истории mail
сервиса, по умолчанию опция отключена. (on/off)
--history-domains DOMAIN domain or domains for own mail (comma delimited)
--history-path PATH путь к истории
...
Где:
-
history-domains
- один или несколько локальных почтовых доменов, -
history-path
- путь для хранения архивов.
Если почтовый сервер у вас уже поднят, изменения можно внести при помощи утилиты cl-update-server
. Используйте cl-backup
перед внесением изменений.
По умолчанию создаётся директория /var/calculate/server-data/samba/share/Mail/
с правами 755
. Измените права доступа для доступа лицу (боссу или админу), имеющему контроль к архиву писем. Папка Mail доступна в samba-ресурсе “Share” для пользователей Linux/Windows. Письма хранятся отдельными файлами, кликая по которому открывается почтовая программа с отображением письма с вложениями.
Структура хранилища
При первом же получении или отправке письма, в директории хранилища создается папка с почтовым пользователем, домен которого указан в параметре history-domains
. В случае, если при получении или отправке письма адреса отправителя и получателя не совпадают с одним из перечисленных в history-domains
доменов, такое письмо попадет в Mail/unknown
.
При отправке письма пользователем, создастся следующий путь:
Mail/user@mail.domain.com/YYYY-MM-DD_HH:SS_other@server.com
Где:
-
user
mail.domain.com@ - почтовый ящик локального пользователя -
other
server.com@ - адрес получателя (адрес может быть также локального пользователя) -
YYYY-MM-DD_HH:SS
- год, месяц, день, часы и минуты.
В созданную директорию попадет исходящее письмо со следующим форматом заголовка:
YYYY-MM-DD_HH:SS_other@server.com/YYYY-MM-DD_HH:SS_Out:TITLE
Где:
-
TITLE
- заголовок письма -
Out
- обозначение исходящего письма
При каждой отправке или получении письма, в имени директории адресата меняется время. В случае входящего письма, вместо "Out"
, письмо отмечается словом "In"
.
Заключение
Теперь восстановить переписку, просмотреть содержимое письма, открыть вложения - всё эти действия можно производить простым кликаньем мышкой в файловом менеджере.
По прошествии года работы файловое хранилище Mail в нашей компании составляет 36 Гб, что приемлемо для 6 Тб рейд-массива и не создаст проблем в будущем. Разумеется спам большей частью отсекается грейлистом и антивирусом.