Лучший способ хранить электронную почту для исторических / обзорных целей - PullRequest
2 голосов
/ 25 января 2010

У меня есть служба, которая обрабатывает электронную почту в почтовом ящике и после обработки сохраняет некоторую информацию из электронной почты в базе данных. На данный момент схема выглядит примерно так:

  • ID
  • Отправитель
  • Тема
  • Тело (результат анализа / разборки в обычный текст)
  • DateReceived

Я создаю веб-интерфейс для базы данных, и основная цель хранения электронных писем состоит в том, чтобы предоставить пользователям возможность оглянуться назад и посмотреть, что они отправили. Тем не менее, другая причина - для целей аудита с моей стороны.

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

Итак, пара вопросов ...

1) Это хорошая идея, чтобы удалить фактическую электронную почту с биржи? Лучше держаться за него на всякий случай ?
2) Чтобы уменьшить размер полей, я убирал HTML из писем, это плохая идея? я должен просто сохранить письмо, как оно получено?

Любой другой совет / предложение будет отличным.

Ответы [ 2 ]

3 голосов
/ 25 января 2010

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

Оба ваших варианта использования (историческая запись и аудит) будут лучше обслуживаться, если хранить полную неограниченную электронную почту в базе данных. Как только вы начинаете манипулировать данными, хотя «просто» удаляя форматирование, становится трудно доказать, что вы не редактировали их другими, более важными способами. Особенно, если вы удалили оригинальное письмо вместо того, чтобы архивировать его.

Вы не говорите, в каком бизнесе вы находитесь, но следует помнить еще одну вещь: существуют ли какие-либо политики хранения данных, действующие в вашей организации или в более широкой юрисдикции. Соблюдение требований становится все хуже.

1 голос
/ 26 января 2010

Я бы сохранял сообщения в почтовом ящике в определенной папке, как вы делаете, и, вероятно, даже не сохранял бы что-либо в базе данных, если вы можете получить доступ к почтовому ящику из приложения.

Команда Exchange за эти годы разработала несколько API для доступа к содержимому почтового ящика.

В Exchange Server 2007 и 2010 рекомендуемым API-интерфейсом будет Exchange Web Services , который можно использовать с любым языком / средой, обеспечивающей доступ к веб-службам.

Если вы разрабатываете на языке .Net (например, C #, VB.NET), лучшим вариантом будет EWS Managed API .

Если вы действительно собираетесь сделать что-то значимое с телом, вы можете сохранить результаты как именованные свойства (расширенные свойства на языке EWS) в самом сообщении.

Существуют другие API с соответствующими функциями для предыдущих версий Exchange.

...