【问题标题】:Storing Outlook emails in a Microsoft SQL Server database将 Outlook 电子邮件存储在 Microsoft SQL Server 数据库中
【发布时间】:2011-01-10 14:49:38
【问题描述】:

我正在使用 c# 编写一个 Outlook 2007 插件来将电子邮件存储在 SQL Server 2005 数据库中。我希望能够将整个 .msg 文件存储在 varbinary(MAX) 字段中。有没有办法做到这一点,而不必使用 Outlook MailItemSaveAs() 方法保存到临时文件,然后再读回文件?我需要将大量电子邮件传输到数据库,并且希望避免昂贵的磁盘读取和写入。

【问题讨论】:

  • 祝你好运先生,这听起来像你走进了一场噩梦
  • 在数据库中以 binary 格式存储 msg 有什么意义?我认为 .msg 是文本...
  • 完全正确 - 将 .msg 存储为 NVARCHAR(MAX) 还可以让您对邮件消息应用全文搜索......如果您以专有的二进制格式存储它,那么就没有那么多了。跨度>
  • 附件呢?它们是否存储为文本?
  • 重要的是我能够再次在 Outlook 中显示电子邮件,因此需要 .msg。我正在提取其他字段以存储为元数据。

标签: c# sql-server vsto outlook-2007 outlook-addin


【解决方案1】:

如果您希望将其实际存储为 .msg 格式文件,而不是尝试自己重新编写,我会说您正在考虑采用您提到的路线。

就个人而言,我会去存储电子邮件的零碎部分,但这完全取决于您要如何处理它。在我看来,将 MSG 文件存储在数据库中并没有任何价值。现在您的用例可能证明并非如此。

【讨论】:

  • 我正在提取重要的点点滴滴作为元数据存储。但是,我希望能够在 Outlook 中显示电子邮件。我基本上是在设计公用文件夹的替代品。
  • 哦,鉴于此,您可能只是运气不佳。可悲的是,我似乎找不到在内存中执行该操作的方法。
  • 也许有一种方法可以创建一个虚拟目录,所以MailItem 认为它正在将自己保存到磁盘,而实际上它正在加载到内存中?
  • 到那时,简单文件操作的开销很可能不会比尝试得到它更糟糕......
【解决方案2】:

可能。

根据您的设置,您可以避免使用 Outlook,而只使用 Exchange/SQL Server。

Linked server to Exchange.

我从来没有尝试过,所以YMMV

【讨论】:

  • 我实际上没有访问 Exchange 服务器的权限,我希望用户只将某些电子邮件推送到数据库中
  • 可能对 OP 没有帮助,但您对我的帮助很大。谢谢!这正是我想要的:-)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多