2010-01-28 13 views
6

Sto utilizzando C# per scrivere un componente aggiuntivo di Outlook 2007 per archiviare le e-mail in un database di SQL Server 2005. Vorrei poter archiviare l'intero file .msg in un campo varbinary(MAX). C'è un modo per farlo senza dover utilizzare il metodo MailItem di Outlook SaveAs() per salvare in un file temporaneo e quindi leggere il file di nuovo? Avrò bisogno di trasferire un gran numero di e-mail al database e preferirei evitare costose letture e scritture su disco.Memorizzazione di e-mail di Outlook in un database Microsoft SQL Server

+3

Buon signore fortuna questo suona come se stessi camminando in un incubo –

+1

Qual è il punto di memorizzare il msg in un formato * * binario nel db ? Ho pensato che .msg fossero testo ... –

+0

esattamente - la memorizzazione di .msg come NVARCHAR (MAX) ti permetterebbe anche di applicare la ricerca full-text ai messaggi di posta .... non tanto se la memorizzi in un formato binario proprietario. –

risposta

2

Se stai cercando di archiviarlo come file in formato .msg, senza provare a riscriverlo da solo, direi che stai guardando la rotta che hai menzionato.

Personalmente vorrei andare a memorizzare bit e pezzi dell'email, ma questo dipende esattamente da cosa si intende fare con esso. Memorizzare un file MSG in un DB a mio parere non è davvero nulla di valore. ora il tuo caso d'uso potrebbe dimostrare il contrario.

+1

Sto estraendo i pezzi importanti da archiviare come metadati. Tuttavia, voglio essere in grado di visualizzare l'e-mail in Outlook. Sto fondamentalmente progettando un sostituto per cartelle pubbliche. – Skywalker

+0

Oh, dato questo, potresti essere solo sfortunato. Purtroppo non riesco a trovare un modo per fare quell'operazione in memoria. –

+0

Forse c'è un modo per creare una directory virtuale in modo che 'MailItem' pensi che si stia salvando sul disco mentre sta effettivamente caricando in memoria? – Skywalker

1

Possibilmente.

A seconda della configurazione, è possibile evitare Outlook e utilizzare solo Exchange/SQL Server.

Linked server to Exchange.

Non ho mai provato così YMMV

+0

Non ho davvero accesso al server Exchange e voglio che vengano visualizzati gli utenti per spingere solo alcune e-mail nel database – Skywalker

+0

Potrebbe non aver aiutato l'OP, ma tu mi hai aiutato immensamente. Grazie! Questo e 'esattamente quello che stavo cercando :-). – dallasstar

Problemi correlati