Re: TKMPを利用したメール転送 ( No.1 ) |
- 日時: 2007/10/25 00:59
- 名前: Toki◆pRU.c9X.EOI
- >メールを受信し、それを可能な限りオリジナルのまま、特定のメールアドレスに
>転送するプログラムを作成したい場合、MailReader から MailWriter への >データ渡しでもっともシンプルな方法はどのような形になるのでしょうか。
簡単に行なう方法を考えてみましたが、ヘッダ情報に一度解析が必要なのと、 本文はストリームから取り出すしか方法が思いつきませんでした。
サンプルを作成しようと思いましたが、 それよりも、ライブラリの拡張の方が簡単そうなので機能追加しました。
TKMP.Net.SmtpClientクラスのSendMailメソッドに渡す引数を TKMP.Writer.MailWriterからTKMP.Writer.IMailWriterへ変更しました。 この修正によってTKMP.Writer.IMailWriterインターフェイスを実装した クラスを作成することで、独自の送信情報を作成できるようになります。
以下のサンプルでは受信したストリームと、送信元、送信先を指定することで 受信内容と全く同じデータを送信データとして返す事が可能になります。 ただし、SMTPサーバーが転送時にヘッダ情報を書き換えるので、 転送後のメールのヘッダは全く同じにはなりません
class ExMailWriter : TKMP.Writer.IMailWriter { private TKMP.Writer.MailWriter MailWriter; private System.IO.Stream MailStream;
public ExMailWriter(System.IO.Stream stream) { MailWriter = new TKMP.Writer.MailWriter(); MailStream = stream; }
public string FromAddress { get { return MailWriter.FromAddress ; } set { MailWriter.FromAddress = value; } }
public TKMP.Writer.MailAddressCollection ToAddressList { get { return MailWriter.ToAddressList; } }
public System.IO.Stream GetData() { return MailStream; }
}
|
Re: TKMPを利用したメール転送 ( No.2 ) |
- 日時: 2007/10/25 20:10
- 名前: SS
- さっそくありがとうございます。メールを自動受信して未読(まだ転送していない)
メールだけを転送するアプリを作成したい場合、サンプルアプリと TIPS の内容から それほど苦労せず作成可能という感じでしょうか。まだ試せていないのですが、 近々、試してみたいと思っています。
|