2010-01-28 39 views
6

Tôi đang sử dụng C# để viết bổ trợ Outlook 2007 để lưu trữ email trong cơ sở dữ liệu SQL Server 2005. Tôi muốn có thể lưu trữ toàn bộ tệp .msg trong trường varbinary(MAX). Có cách nào để thực hiện việc này mà không phải sử dụng phương thức SaveAs() của Outlook để lưu vào tệp tạm thời và sau đó đọc tệp lại không? Tôi sẽ cần phải chuyển một số lượng lớn các email đến cơ sở dữ liệu và muốn tránh tốn kém đĩa đọc và viết.Lưu trữ email Outlook trong cơ sở dữ liệu Microsoft SQL Server

+3

Chúc may mắn thưa ông điều này có vẻ như bạn đang bước vào một cơn ác mộng –

+1

điểm lưu trữ các msg trong một * * định dạng nhị phân trong db là gì ? Tôi nghĩ .msg là văn bản ... –

+0

chính xác - lưu trữ .msg như NVARCHAR (MAX) cũng sẽ cho phép bạn áp dụng tìm kiếm toàn văn bản vào thư .... không quá nhiều nếu bạn lưu trữ nó ở định dạng nhị phân độc quyền. –

Trả lời

2

Nếu bạn đang thực sự lưu trữ tệp dưới dạng tệp định dạng .msg, mà không phải tự viết lại, tôi sẽ nói rằng bạn đang xem tuyến đường bạn đã đề cập.

Cá nhân tôi sẽ lưu trữ các bit và phần của email, nhưng điều đó phụ thuộc vào chính xác những gì bạn định làm với nó. Lưu trữ một tập tin MSG trong một DB theo ý kiến ​​của tôi không thực sự là bất cứ điều gì có giá trị. bây giờ trường hợp sử dụng của bạn có thể chứng minh khác đi.

+1

Tôi đang kéo ra các bit và phần quan trọng để lưu trữ dưới dạng siêu dữ liệu. Tuy nhiên, tôi muốn có thể hiển thị lại email trong Outlook. Tôi về cơ bản là thiết kế một sự thay thế cho các thư mục công cộng. – Skywalker

+0

Ồ, vì điều đó, bạn có thể không may mắn. Đáng buồn là tôi dường như không thể tìm ra cách để thực hiện thao tác đó trong bộ nhớ. –

+0

Có lẽ có một cách để tạo một thư mục ảo để 'MailItem' nghĩ rằng nó đang tự lưu vào đĩa trong khi nó thực sự đang được tải vào bộ nhớ? – Skywalker

1

Có thể.

Tùy thuộc vào thiết lập của bạn, bạn có thể tránh Outlook và chỉ sử dụng Exchange/SQL Server.

Linked server to Exchange.

Tôi chưa bao giờ thử nó vì vậy YMMV

+0

Tôi thực sự không có quyền truy cập vào máy chủ Exchange và tôi sẽ muốn người dùng để chỉ đẩy một số email nhất định vào cơ sở dữ liệu – Skywalker

+0

Có thể không giúp được OP, nhưng bạn đã giúp tôi vô cùng. Cảm ơn bạn! Điều này thật đúng với gì mà tôi đã tìm kiếm :-). – dallasstar

Các vấn đề liên quan