Re: 【TKMP】全文が読み込まれないときがある ( No.1 ) |
- 日時: 2010/03/12 22:39
- 名前: Toki◆pRU.c9X.EOI
- 幾つか確認をお願いします。
・途中で途切れるメールは常に同じメールですか? ・途中で途切れていると判断しているのは、受信データですか?解析した本文ですか? ・途中で途切れたメールの後に通信切断などは起きていませんか?
受信データは正常で、解析した本文が途切れる場合は TKMP.Reader.MailReaderクラスでの解析に問題があると思います。
途中で通信切断が起こってメールが途切れる場合は TKMP.Net.PopClientでの処理に問題があると思います。
まず、どちらで問題が発生しているかを切り分けられると助かります。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.2 ) |
- 日時: 2010/03/15 12:35
- 名前: おやぢ2009
- お返事ありがとうございます。
一つ重要なことを書き忘れたのですが。
全文を読み込めないときにTKMPに付属のサンプル(Sample_cs_2005.sln)で試したところ、本文は私が作ったプログラムと同じ個所で途切れてしまいます。
途切れてしまうのは、受信データです。上記のコードでは「変数 main」です。
上記の他のご質問に関しては、後ほどお答えさせていただきます。
よろしくお願い致します。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.3 ) |
- 日時: 2010/03/15 18:04
- 名前: おやぢ2009
- >・途中で途切れるメールは常に同じメールですか?
同じメールです。しかしそのメールを削除したあと、何日間かたってからまた その現象を引き起こす違うメールが出てくるいう感じです。
その対象となるメールは、サーバーに何通も存在する可能性があります。
>・途中で途切れていると判断しているのは、受信データですか?解析した本文ですか?
申し訳ありませんが、私は「受信データ」と「解析した本文」が何かを理解できません。 TKMPに付属のサンプル(Sample_cs_2005.sln)のlistView1_DoubleClickの中のre.MainText に当たる文字列を指します。
>・途中で途切れたメールの後に通信切断などは起きていませんか?
通信は受信ボタンを初めてクリックしたとき開始し、アプリケーションを終了するとき 切断する形なので、途中で通信切断は起きていないと思います。対象となるメール受信の あとのメールも受信していますので大丈夫だと思います。
もし不測の切断があるとすれば、メッセージの受信イベントのe.Messageを取得すれば 判りますか?
今回のことと関係あるかは分かりませんが、一番最初のコードは正しくは下記のように 一度の受信でHeaderStreamとDataStreamを一度に取得しています。
for (i = 0; i < ・・・) { TKMP.Net.MailData Data = (TKMP.Net.MailData)Mails[i];
TKMP.Reader.MailReader re = new TKMP.Reader.MailReader(Data.HeaderStream, false); string from = re.HeaderCollection["From"]; string subject = re.HeaderCollection["Subject"]; DateTime date = new TKMP.Reader.Header.DateTime(re).Value;
TKMP.Reader.MailReader re2 = new TKMP.Reader.MailReader(Data.DataStream, false); string main = re2.MainText; }
よろしくお願いします。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.4 ) |
- 日時: 2010/03/15 23:05
- 名前: Toki◆pRU.c9X.EOI
- 報告ありがとうございます。
途中で通信が途切れていないのでしたら、 サーバーからのデータの受信は成功していると思います。
string main = re2.MainText; この部分で取得できる文字列は TKMP.Reader.MailReaderでの解析後のデータとなります。 Data.DataStreamをそのままファイルに保存することができれば 全てのデータが受信できているか解ると思います。
TKMP.Reader.MailReaderでデータの欠損が起こる可能性は ・クラス自体に問題がある ・受信メールに規格外の記述がある
どちらにしろ問題箇所は本文の途切れた部分の次にあると思います。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.5 ) |
- 日時: 2010/03/16 07:59
- 名前: おやぢ2009
- ご回答ありがとうございます。
> Data.DataStreamをそのままファイルに保存することができれば
ファイルに保存するというのは具体的にはどのようにすれば 良いのでしょうか?
お手数をお掛けしますが、お教え下さい。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.6 ) |
- 日時: 2010/03/17 00:10
- 名前: Toki◆pRU.c9X.EOI
- >ファイルに保存するというのは具体的にはどのようにすれば
>良いのでしょうか?
byte[] source = new byte[Data.Length]; Data.DataStream.Read(source, 0, source.Length); System.IO.File.WriteAllBytes(path, source);
バイト配列に一旦置き換えることで簡単にできると思います。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.7 ) |
- 日時: 2010/03/17 08:18
- 名前: おやぢ2009
- ご回答ありがとうございます。
今現在メールサーバーには、対象となるメールは全て削除 されてしまっていて、教えていただいた方法で試すことが できません。
もし今度サーバーに入ってきましたら、試してご報告させ ていただきます。
よろしくお願いします。
|