Идеи для хранения сообщений электронной почты в клиент-серверном приложении Delphi - PullRequest
0 голосов
/ 05 февраля 2011

Есть много предложений здесь и там для хранения сообщений электронной почты.Каким-то образом я пишу надстройку Outlook для отправки писем из папок входящих / отправленных прямо в мое приложение.

Так что сохраняется только то, что действительно интересно.И я решаю, где его сохранить.

Представьте себе этот случай:

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

При этом сказано, как хранить письма?Для электронных писем, которые я получаю или отправляю через Outlook, идея может быть в том, чтобы сохранить весь файл в поле большого двоичного объекта (например, в файле eml), возможно, я смогу также сохранить другую информацию (например, тему) в другом текстовом поле.Но проблема возникает, когда я пишу электронное письмо из своего приложения.

В этом случае я не создаю файл eml, я отправляю данные MAPI в Outlook, чтобы составить электронное письмо, которое я отправлю с помощью Outlook (поэтому вв этом случае я не могу сохранить eml), или я отправляю его напрямую через Indy.Также в этом случае у меня нет файла eml ...

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

Можете ли вы прокомментировать?

1 Ответ

0 голосов
/ 05 февраля 2011

Сначала вы должны решить, какую информацию вы хотите сохранить .Остальное - всего лишь способ добраться туда.

Один из вариантов - хранить файлы .msg (вы разместили связанные вопросы, указывающие на то, что вы не новичок в MAPI) вместо файлов .eml.Используя MAPI, вы можете сохранить созданное вами IMessage в виде файла MSG (с небольшим трудом).Однако, не все свойства карты будут установлены до тех пор, пока сообщение фактически не будет отправлено, поэтому вам может понадобиться перехватить папки для отправки элементов для этого.текстовый формат, который вы предпочитаете) непосредственно из источника.При отправке возьмите исходные данные, сгенерируйте правильные вызовы MAPI для outlook И сгенерируйте .eml и сохраните их непосредственно в вашей базе данных.При получении сохраните Outlook непосредственно в .eml.

Лично я бы вообще не использовал .eml для хранения.Я бы разбил данные, которые мне особенно интересны (например, адреса для / из), в отдельные столбцы.В конце концов, вы, вероятно, используете свою БД для поиска данных.Базы данных, как правило, работают лучше, когда вы не храните все в одном поле памятки / блоба.:)

...