SQLでExchange 2010メールを保存します
-
27-09-2019 - |
質問
メールの到着とともにプログラムフローを開始するアプリケーションがあります。メールをアプリケーションにリンクする必要があります。これは、メッセージのカスタムプロパティを介して行う予定です。
その後、私は永遠に参照のために電子メールを保存する必要があります。 Exchange 2010はメールボックス内の10GBと100,000のアイテムのみをサポートしているため(PSTファイルを使用せずに)、メッセージをより永続的なストアSQLに入れる必要があります。
私はSQL 2005を実行していますが、そこにメールを保存したいのですが、画像としてではありませんので、必要に応じて検索できます。 Exchange Webサービスを使用して電子メールを取得しているので、メッセージ用の完全なXMLをすでに持っています。それをXMLフィールドに保存すると、それに関連付けられたメッセージXMLスキーマがある(パフォーマンスを支援するため)は、最良のソリューションを提供するはずです。
私の問題は、メッセージのXMLスキーマを取得することです。どこにも見つけることができないようで、メッセージをSQLに入れるためのオンラインコンテンツはあまりないようです。
私はこれについてすべて間違っていますか、それとも私にとってより良い解決策がありますか?メールボックスは、年間60万以上のメールを受信すると予測されています。
助けや支援は喜んで受けられます。
ありがとう、マイク
解決
使った 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>
他のヒント
XML列に保存し、その列をインデックスして検索できます。
メッセージXMLスキーマについては、おそらく1つありますが、見つかりません。