2010-05-18 204 views
1

我有一个应用程序,它将在电子邮件到达时启动程序流程。我将需要将电子邮件链接到我的应用程序,我将通过消息的自定义属性来完成此操作。在Exchange中存储Exchange 2010电子邮件

然后,我将需要存储电子邮件,以供永久参考。由于Exchange 2010仅支持邮箱中的10Gb和100,000个项目(不使用PST文件),因此我需要将邮件转移到更永久的存储区SQL中。

我正在运行SQL 2005,我想将电子邮件存储在那里,但不是作为图像,所以如果需要的话我可以搜索它。由于我使用Exchange Web服务来获取电子邮件,因此我已经拥有完整的消息XML。我认为将它存储在一个XML字段中,该字段具有与之关联的Message XML模式(以帮助提高性能)应该为我提供最佳解决方案。

我的问题是获取消息的XML模式。我似乎无法在任何地方找到它,并且似乎没有太多用于将消息放入SQL的在线内容。

我对此有何看法?或者有更好的解决方案吗?该邮箱预计每年会收到超过60万封电子邮件。

任何帮助或援助将愉快地收到。

谢谢, 迈克

回答

1

我用XMLSpy来生成基于XML文件的模式。它不会是完美的,但它适用于我。

XMLSpy生成的比以下更多,但它太严格了,而且SQL也没有验证它。所以我拿出了一些额外的东西,并保持它的美观和简单。

这里是它生成的MessageType XML模式;

<?xml version="1.0" encoding="UTF-8"?> 
<!--W3C Schema generated by XMLSpy v2010 rel. 3 (x64) (http://www.altova.com)--> 
<xs:schema xmlns:n1="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/types" schemaLocation="messagetype1.xsd"/> 
    <xs:element name="MessageType"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="n1:ItemId"/> 
       <xs:element ref="n1:ParentFolderId"/> 
       <xs:element ref="n1:ItemClass"/> 
       <xs:element ref="n1:Subject"/> 
       <xs:element ref="n1:Sensitivity"/> 
       <xs:element ref="n1:DateTimeReceived"/> 
       <xs:element ref="n1:Size"/> 
       <xs:element ref="n1:Importance"/> 
       <xs:element ref="n1:IsSubmitted"/> 
       <xs:element ref="n1:IsDraft"/> 
       <xs:element ref="n1:IsFromMe"/> 
       <xs:element ref="n1:IsResend"/> 
       <xs:element ref="n1:IsUnmodified"/> 
       <xs:element ref="n1:DateTimeSent"/> 
       <xs:element ref="n1:DateTimeCreated"/> 
       <xs:element ref="n1:DisplayCc"/> 
       <xs:element ref="n1:DisplayTo"/> 
       <xs:element ref="n1:HasAttachments"/> 
       <xs:element ref="n1:Culture"/> 
       <xs:element ref="n1:EffectiveRights"/> 
       <xs:element ref="n1:LastModifiedName"/> 
       <xs:element ref="n1:LastModifiedTime"/> 
       <xs:element ref="n1:IsAssociated"/> 
       <xs:element ref="n1:WebClientReadFormQueryString"/> 
       <xs:element ref="n1:ConversationId"/> 
       <xs:element ref="n1:Sender"/> 
       <xs:element ref="n1:IsReadReceiptRequested"/> 
       <xs:element ref="n1:ConversationIndex"/> 
       <xs:element ref="n1:ConversationTopic"/> 
       <xs:element ref="n1:From"/> 
       <xs:element ref="n1:InternetMessageId"/> 
       <xs:element ref="n1:IsRead"/> 
       <xs:element ref="n1:ReceivedBy"/> 
       <xs:element ref="n1:ReceivedRepresenting"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 
0

,你可以将它存储在XML列,索引列,并通过它进行搜索。

至于消息xml架构,可能有一个,但我找不到它。

+0

我想我没有让自己清楚。一个XML列正是我的计划,但获取XML模式是我的问题。 但谢谢你确认我的方法。 – 2010-05-19 07:46:49

相关问题