The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン TKMPを利用したメール転送
日時: 2007/10/24 14:53
名前: SS

こんにちは、C# によるメールの転送プログラムを作成する必要がでてきたので
ライブラリを探していたところ、TKMP を発見して「これだ!」とガッツポーズをしました。
便利なツールの作成、ありがとうございます。

ライブラリについて教えていただきたいのですが、POP サーバに接続して
メールを受信し、それを可能な限りオリジナルのまま、特定のメールアドレスに
転送するプログラムを作成したい場合、MailReader から MailWriter への
データ渡しでもっともシンプルな方法はどのような形になるのでしょうか。

それぞれのメソッドとインスタンスを見た限り、一発受け渡しというようなことは
できないように感じたのですが、From、To、、、のように一つずつ渡していくことに
なるのでしょうか。(そもそも MailReader から MailWriter という流れを使わないとか?)

どうぞよろしくお願いします。

Page: 1 |

ファイル 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 の内容から
それほど苦労せず作成可能という感じでしょうか。まだ試せていないのですが、
近々、試してみたいと思っています。

Page: 1 |