2010-01-28 12 views
6

Używam C# do pisania dodatku Outlook 2007 do przechowywania wiadomości e-mail w bazie danych SQL Server 2005. Chciałbym móc przechowywać cały plik .msg w polu varbinary(MAX). Czy istnieje sposób na wykonanie tej czynności bez konieczności użycia metody Outlook MailItem do zapisania w pliku tymczasowym, a następnie ponownego wczytania tego pliku? Będę musiał przenieść dużą liczbę wiadomości e-mail do bazy danych i wolałbym uniknąć kosztownych odczytów i zapisów na dysku.Przechowywanie wiadomości e-mail programu Outlook w bazie danych Microsoft SQL Server

+3

Powodzenia panie brzmi to jak idziesz w koszmar –

+1

Jaki jest sens przechowywania wiad w binarnym formacie * * w db ? Myślałem, że .msg to tekst ... –

+0

dokładnie - przechowywanie .msg jako NVARCHAR (MAX) pozwoliłoby również na zastosowanie wyszukiwania pełnotekstowego do wiadomości e-mail .... nie tak bardzo, jeśli przechowujesz go w zastrzeżonym formacie binarnym. –

Odpowiedz

2

Jeśli chcesz rzeczywiście zapisać go jako plik w formacie .msg, nie próbując ponownie napisać tego samodzielnie, powiedziałbym, że patrzysz na trasę, o której wspomniałeś.

Osobiście chodzę do przechowywania bitów i elementów wiadomości e-mail, ale to zależy od tego, co dokładnie zamierzasz z tym zrobić. Przechowywanie pliku MSG w DB, moim zdaniem, w rzeczywistości nie ma żadnej wartości. teraz Twój przypadek użycia może okazać się inny.

+1

Wyciągam ważne elementy do przechowywania jako metadane. Chcę jednak móc ponownie wyświetlić wiadomość e-mail w programie Outlook. Zasadniczo projektuję zamiennik folderów publicznych. – Skywalker

+0

Och, biorąc pod uwagę to, możesz mieć po prostu pecha. Niestety nie mogę znaleźć sposobu na zrobienie tej operacji w pamięci. –

+0

Być może istnieje sposób na utworzenie katalogu wirtualnego, więc 'MailItem' uważa, że ​​sam zapisuje się na dysku podczas jego ładowania do pamięci? – Skywalker

1

Prawdopodobnie.

W zależności od konfiguracji można uniknąć programu Outlook i po prostu użyć serwera Exchange/SQL Server.

Linked server to Exchange.

Nigdy nie próbowałem go więc YMMV

+0

Nie mam naprawdę dostępu do serwera Exchange i chcę, aby użytkownicy wepchać tylko niektóre e-maile do bazy danych – Skywalker

+0

Może nie pomogło mi OP, ale pomógł mi niezmiernie. Dziękuję Ci! Właśnie tego szukałem :-). – dallasstar

Powiązane problemy