2016-11-01 16 views
0

私は電子メール送信ロジックを実装しています。ここに私がやりたいことがあります。System.Net.Mail.MailMessage文字列からのロード

システムが電子メールを送信するときに、MailMessageオブジェクト(すべての詳細を含む)を構築し、そのオブジェクトをデータベースに(文字列として)同時に送信するのではなく、いつでも保存します。バックグラウンドプロセスから、保存された電子メールが取得され、処理されます。

StringはMailMessge.ToString()メソッドから取得されます。

私の問題は、保存された文字列からMailMessageオブジェクトを戻す方法が見つからないということです。これがMailMessageクラスでサポートされているかどうかはわかりません。

私の2番目の選択肢は、キューに入れられたテーブル(to、subject、bodyなど)に生データを保存し、送信時にMailMessageオブジェクトを構築することです。私は最初のオプションを好むでしょう。

これを達成する方法が分かっている場合は、教えてください。事前に

おかげで、 Wijitha

+1

'MailMessage.ToString()'あなたは後でそれを再作成するために使用できる文字列にオブジェクトを変換するつもりはありません。 *これを行う(多かれ少なかれ)プロセスは* Serialization *と呼ばれ、 'MailMessage'のためにそれを行う方法はありません。実際にdbテーブルにメッセージの詳細をすべて格納することは、実際にははるかに良くなり、適切なプロパティを設定してオブジェクトを構築し、見やすく見やすく編集可能なメッセージレコードを作成するのは簡単です。 –

+0

ありがとうアレックス、ええ、あなたの権利。私はオプション2を先に進めるでしょう。 – Wijitha

答えて

1
  1. MailMessage.ToString()はオプションではありません。

  2. データベースまたはファイルにオブジェクトを格納するためにクラスにはSerializableとマークする必要がありますが、悲しいことにMailMessageの場合はSerializable属性でマークされていません。

  3. 2番目のオプションに行く必要があります。

2番目のオプションを使用したくない場合は、データベースにデータを保存するためのMailMessageクラスのシリアライズ可能バージョンを作成します。後でそのオブジェクトを取得し、mailmessageに変換して電子メールを送信します。

https://github.com/keyvan/Gopi/blob/master/Gopi/Gopi/SerializableMailMessage.cs

+0

あなたの答えをありがとう、それは私の問題をクリアしました。オプション2と一緒に行く予定です。Chilkat APIを使用して、以前は別のプロジェクトでオプション1を達成しました。私は.Netにもそれを行う方法があると思った。 – Wijitha

関連する問題