2009-05-21 14 views
0

私はSQL 2005データベースのフィールドに電子メールから身体をインポートしようとしてきたが、それは得ることのとにかくフォーマット(キャリッジリターン、タブなど)EWS - SQLデータベースにインポートする電子メール

を失う保ちますこの周り?

+2

EWSとは何ですか?英語、ウェールズ語、スコットランド鉄道株式会社? – Andomar

+0

EWSはExchange Web Servicesを表します –

答えて

0

フィールドがSQLの場合はどのようなデータ型ですか? 「テキスト」フィールド(nvarcharなど)を使用している場合、これが原因である可能性があります。

本当に電子メール本文がそのまま必要な場合は、おそらくblob(バイナリ)フィールドとして格納する必要があります。これには意味があります(SQLにバイナリオブジェクトを格納することについて読む必要があります)が、メッセージの本文を格納することができます。

おそらく、これらのメッセージをSQL内のメッセージへのポインタのみを使用してSQL内に格納し、外部(ファイルシステムなど)に格納する必要がない理由がありますか?

+0

なぜテキストがキャリッジリターンとタブをドロップしますか?それらはすべて有効なテキスト(ASCII文字でも可)です。 SQL Serverに精通していないが、インポートスクリプトの問題(便宜的に説明されていない)のように聞こえるが、SQL Serverそのものではない。 –

+0

テキストファイルに書き込むか、コードをステップ実行すると、\ r \ nはそのまま残りますが、sqlフィールドにドロップされます。私はテキストとvarcharを使ってみました - 運はありません。私はキャリッジリターンを維持するために
とstr.replaceを持っていたが、今はhtmlとしてフィールドを読んだ。私はマーティンのアドバイスを試みます。 (?) –

+0

ウェブページに\ r \ nを表示しようとしている可能性があります。しかし、HTMLでは\ r \ nは何もしません。それはちょうど空白です。これは、SQLやデータベースストレージとはほとんど関係がありません。 – Andomar

0

私は問題を見つけることができました。私が使用していたデータセットは、文字列として値を渡していました。私はcharに変更し、すべてのフォーマットは保持されます。あなたに助けてくれてありがとう。

1

これは、実際の電子メールコンテンツが残るように、HTML書式とすべての文字の電子メール本文を削除するために使用したコードです。それは混乱のように見えますが、それは動作します:

foreach (Item item in findResults.Items) 
      { 
       MessageBody messageBody = new Microsoft.Exchange.WebServices.Data.MessageBody(); 
       List<Item> items = new List<Item>(); 
       if (findResults.Items.Count > 0) // Prevent the exception 
       { 
        foreach (Item item2 in findResults) 
        { 
         items.Add(item2); 
        } 
       } 
       service.LoadPropertiesForItems(items, PropertySet.FirstClassProperties); 
       messageBody = item.Body.ToString().Replace("<html dir=", "").Replace("<head>", "").Replace("<meta http-equiv=", "").Replace("content=", "") 
           .Replace("<style type=", "").Replace("</style>", "").Replace("</head>", "").Replace("<body fpstyle=", "").Replace("ocsi=", "") 
           .Replace("<div style=", "").Replace("direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;", "").Replace("</div>", "") 
           .Replace("<div>", "").Replace("</body>", "").Replace("</html>", "").Replace("<br>", "").Replace(">", "").Replace("\"Content-Type", "") 
           .Replace("\"text/html; charset=utf-8", "").Replace("\"0", "").Replace("\"", "").Replace("text/css", "") 
           .Replace("id=owaParaStyle", "").Replace("ltr", "").Replace("<meta name=GENERATOR MSHTML 9.00.8112.16470", "").Replace("<style P {", "") 
           .Replace("MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px", "").Replace("<p", "").Replace("</p>", "").Replace("</p", "").Replace("&nbsp;", "") 
           .Replace("<body fPStyle= ", "").Replace("%", "").Replace("<", "").Replace(">", "").Replace("}", "").Replace("\"","").Replace("body fPStyle=1",""); 
関連する問題