0

メールの本文を SQL 2005 データベースのフィールドにインポートしようとしましたが、書式設定 (キャリッジ リターン、タブなど) が失われ続けます。

とにかくこれを回避するには?

4

3 に答える 3

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","");
于 2013-06-27T08:34:18.187 に答える
0

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

于 2009-05-28T07:48:49.203 に答える
0

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

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

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

于 2009-05-21T09:37:16.013 に答える