0

電子メール メッセージの保存については、あちこちに多くの提案があります。どういうわけか、私がやっているのは、受信トレイ/送信済みフォルダーからアプリケーションに直接電子メールを送信するための Outlook アドインを作成することです。

本当に興味深いものだけが保存されます。そして、どこに保存するかを決めます。

この場合を想像してください:

お客様からメールが届きます。それを顧客に保存するか、その顧客が行った注文 24 に保存するかを決定するのは私次第です。これが、私がアドインを行っている理由であり、電子メールの自動保存 = しばらくしてからのノイズではありません。

これは言った、メールを保存する方法は?Outlook を介して受信または送信する電子メールの場合、ファイル全体を blob フィールド (eml ファイル) に保存することも、他の情報 (件名など) を別のテキスト フィールドに保存することもできます。しかし、アプリケーションからメールを書くときに問題が発生します。

この場合、eml ファイルを生成していません。MAPI データを介して Outlook に送信し、Outlook で送信する電子メールを作成します (したがって、この場合は eml を保存できません)、または Indy で直接送信します。また、この場合、emlファイルはありません...

自動作成するすべての電子メールには、アドインが認識する特別なフラグがあるため、メールを送信すると DB に保存されるという考えが 1 つ考えられます。したがって、この場合、アプリケーションから送信したメールの eml も保存できます。

コメントいただけますか?

4

1 に答える 1

0

まず、保存する情報を決定する必要があります。残りはそこに到達するための単なる手段です。

1 つのオプションは、.eml ファイルの代わりに .msg ファイルを保存することです (MAPI に詳しくないことを示唆する関連する質問を投稿しました)。MAPI を使用すると、作成した IMessage を .msg ファイルとして保存できます (少し手間がかかります)。ただし、メッセージが実際に送信されるまですべての mapi props が設定されるわけではないため、そのために Outlook 送信アイテム フォルダーをフックする必要がある場合があります。

もっと簡単な解決策は、ソースから直接 .eml (または好みのテキストベースの形式) を生成することです。送信するときは、ソース データを取得し、Outlook への正しい MAPI 呼び出しを生成し、.eml を生成してデータベースに直接保存します。受信時、Outlook で直接 .eml に保存してください。

個人的には、ストレージに .eml をまったく使用しません。特に関心のあるデータ (to/from アドレスなど) を個別の列に解析します。最終的には、おそらくデータの取得に DB を使用しているでしょう。すべてを 1 つのメモ/ブロブ フィールドに格納しないと、データベースのパフォーマンスが向上する傾向があります。:)

于 2011-02-05T15:23:23.083 に答える