2011-02-05 12 views
0

電子メールメッセージを格納するためのさまざまな提案があります。何とか私がやっているのは、Outlookアドインを書いて、受信箱から電子メールを送信する/私のアプリケーションに直接送信されたフォルダです。Delphiクライアントサーバーアプリケーションに電子メールメッセージを格納するためのアイデア

本当に面白いものだけが保存されます。そして私はそれをどこに保存するか決めます。

このケースを想像してみてください。

お客様からのメールが届きました。それを顧客に保存するのか、それとも顧客が注文したのかを判断するのは私の責任です。だから、私は電子メールのいくつかの時間の後に自動的に格納するのではなく、ノイズを追加しています。

これは、どのように電子メールを保存すると言いましたか?私が受け取った電子メールやOutlookから送信するアイデアは、Blobフィールド(emlファイルなど)にファイル全体を保存したり、別のテキストフィールドに他の情報(件名など)を保存することができます。しかし、私のアプリケーションから電子メールを書くときに問題が発生します。

この場合、私はemlファイルを生成していません。Outlookに送信する電子メールを作成するためにMAPIデータをOutlookに送信します(この場合はemlを保存できません)。インディーこの場合でも、私はemlファイルを持っていません...

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

あなたはコメントしますか?

+0

なぜメールサーバーの外にメールを保存しようとしていますか?メールサーバーは電子メールを保存するのに非常に優れています。 ExchangeでOutlookを使用している場合、最新のリリースにはメール受信のための特定の機能があります。受信メールと送信メールを常にルーティングする機能があります。他のサーバーも同様です。 –

+0

@ldsandon関連するすべてのデータを格納するアプリケーションがあるためです。多くの顧客はメールサーバーを持っていない(pop3無料の電子メールを使用するものもあります)。多くのコミュニケーションは役に立たない。最も重要なものは、意味のあるところで手動で保管されます(注文、顧客、など)。これはそれが動作する方法であり、これは私が価値が見つけられた方法です。 – LaBracca

答えて

0

まず、のどの情報を保存するかを決定する必要があります。が保存されます。残りはそこに着くための手段に過ぎません。

1つの方法は、.emlファイルの代わりに.msgファイル(MAPIの見知らぬ人でないことを示す関連する質問を投稿しています)を保存することです。 MAPIを使用すると、作成したIMessageを.msgファイルとして保存することができます(痛みが少しあります)。しかし、メッセージが実際に送信されるまで、すべてのMAPI小道具が設定されるわけではありませんので、outlooksアイテムのフォルダを送信する必要があります。

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

私は個人的には.emlを使用しないでください。私は特に関心のあるデータ(アドレスから/へ)を別々の列に解析します。最後に、あなたはおそらくあなたのDBをデータ検索に使用しています。単一のメモ/ BLOBフィールドにすべてを格納しないと、データベースはより良い仕事をする傾向があります。 :)