4

をStreamMailItemとして直接返すことは可能ですか? (から)MailItemMicrosoft.Office.Interop.Outlook

今、最初MailItemにディレクトリに保存し、それを開いてストリームをファイルに戻し、その後ファイルを再度削除する一時的な解決策を見つけました。

MailItemこの一時的な解決策は、大量のメールを処理するときに遅くなるため、 as をMemoryStream直接返すなどに置き換えたいと考えています。

これはどのように行うことができますか?

コメントによる編集:遅いのは一部ですが、別のコード部分(変更できない)はストリームのみを受け入れます。そのため、MailItemをストリームとして開くソリューションを探しています)

4

1 に答える 1

0

私はあなたの遅い問題について考えました。私は自分の文章を書くときに大きな違いを生むかもしれない何かに出くわしました。

キャッシュされていないモードでOutlookを使用していたとき、各電子メールを取得して開いてから、処理済みのフォルダーに移動するのは控えめに言っても大変でした。キャッシュモードにしたときは、もちろん、すべてを同期するのに苦労するようにコードを記述しなければならなかったので、開始する前に最新の情報を入手しました。

キャッシュされると、同時に多くのメールアイテムを開くことができ、並列処理が可能になります。キャッシュされていないモードでは、32前後で停止することがよくあります。そして、オープン(そして私たちの)の考え方は異なります。

それで、私もimapクラスを試しました、sheeshはそれについて二度と話さないでください。

あなたがいくつかのコードを持っているなら、多分私たちは助けることができますか?キャッシュモードがない場合は、コードをすべて同期するように強制した方法を掘り下げることができます。思ったほど素晴らしくシンプルではありませんでしたが(何かを見逃した可能性があります)、非常に確実に機能し、すべてのバックアップメールを処理するようになりましたわかります。

于 2012-06-27T17:06:29.250 に答える