Я бы подумал о внедрении каких-то общих функций архивирования. Как вы реализуете это зависит от ваших конкретных потребностей поиска.
Например, если вы хотите просто получать электронные письма, отправленные конкретному клиенту в течение определенного месяца, то их хранение в соответствующей иерархии в файловой системе (при необходимости, архивирование) должно быть простым. Возможно, вы захотите записать список отправленных писем в таблицу базы данных с указателем на соответствующий каталог, но для имен каталогов и файлов может быть достаточно соглашения
Возможно, вам не нужно будет обращаться к очень старым электронным письмам очень редко, поэтому вы можете архивировать их на DVD, например, если проблема с онлайн-хранилищем
Если вы хотите часто осуществлять поиск по фактическому содержанию электронных писем, вам придется поместить содержимое в таблицу БД или использовать индексатор, такой как Люцерн, для проверки файлов, хранящихся на диске