The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン 【TKMP】メール削除出来ない
日時: 2011/07/04 14:44
名前: のり

お世話になっております。
TKMPDLL_2.4.20にて OCNメールサーバのメールが削除できないことがあります。

どうも削除するタイミング(Mail.Delete)で*時たま*エラーがCatchされず
プログラムが落ちて(終了して)しまいます。

環境はVS2005(VB)、,NET Framework2.0を使用しています。

原因が分かりましたら教えてください。
よろしくお願い申し上げます。

#日時: 2009/11/11 14:21
#名前: エムエム
#この現象と同じだと思います。

Page: 1 |

ファイル Re: 【TKMP】メール削除出来ない ( No.1 )
日時: 2011/07/04 16:44
名前: のり

追記させて頂きます。

どうも、複数件のメールを削除する場合に発生しやすいようです。

定周期に実行しても、大丈夫な場合は数時間のあいだ大丈夫です。
ファイル Re: 【TKMP】メール削除出来ない ( No.2 )
日時: 2011/07/06 08:03
名前: Toki◆pRU.c9X.EOI

ご迷惑おかけしています。

幾つか確認お願いします。

1.
メールの削除時に発生しているようですが、
通信ログを記録することは可能ですか?
同期実行中ならば通信ログが、記録されるだけで、
ある程度問題箇所が判別できるかもしれません。

ただ、POP3のDELEコマンド自体はOK、ERRを検出しているだけなので、
送受信が正常に出来ているならば、問題は発生しにくいです。



2.
削除時に問題があるようですが、
この場合QUITを発行せず終了するため、
通常はメールサーバーのメールデータは削除されません。
この状態で、再度同じ処理を行ったとき、
問題は発生するのでしょうか?



3.
定期実行で問題が出ているようですが、
この「定期実行」はプログラムを再実行していますか?
それとも、POPの接続、切断のみの再実行でしょうか?
PopClientクラスのインスタンスを使いまわしている場合、
このクラスが持つMessageLogクラスではログが蓄積され続けることになります。



4.
OCN以外のメールサーバーでの実行は
正常に行えていると解釈していいのでしょうか?
それとも、OCN以外では実行実績が無いのでしょうか?


以上よろしくお願いします。

ファイル Re: 【TKMP】メール削除出来ない ( No.3 )
日時: 2011/07/06 10:14
名前: のり

お世話になっております、迷惑とは露ほどにも思っておりません。
この DLLでかなり楽に開発実行することが出来おり大変助かっております。

┌――――――――――――――――――――――――――
|1.
|メールの削除時に発生しているようですが、
|通信ログを記録することは可能ですか?
|同期実行中ならば通信ログが、記録されるだけで、
|ある程度問題箇所が判別できるかもしれません。

|ただ、POP3のDELEコマンド自体はOK、ERRを検出しているだけなので、
|送受信が正常に出来ているならば、問題は発生しにくいです。

'サーバーからメッセージを受信したときのイベント
Private Sub pop_MessageSend(ByVal sender As Object, ByVal e As TKMP.Net.MessageArgs)
System.Diagnostics.Debug.WriteLine((">" + e.Message))
End Sub

'サーバーへメッセージを送信したときのイベント
Private Sub pop_MessageReceive(ByVal sender As Object, ByVal e As TKMP.Net.MessageArgs)
System.Diagnostics.Debug.WriteLine(e.Message)
End Sub

この内容をファイルに残すようにしてみます。

しかし、昨日昨晩と15時間位の動作中に一度も異常終了することは
ありませんでした。
受け取るメールの内容は常に10数行の短いテキストだけです、添付
ファイルもなければ、長文のメールでもありません。
#スパムも届いていないようです

┌――――――――――――――――――――――――――
|2.
|削除時に問題があるようですが、
|この場合QUITを発行せず終了するため、
|通常はメールサーバーのメールデータは削除されません。
|この状態で、再度同じ処理を行ったとき、
|問題は発生するのでしょうか?

今回の仕様は、メールを正しく読み込むと該当する処理が実行され完了します。
この時点でメールを削除しておかなければ、同じ処理が何度も実行されてしまい
不都合な状態となってしまいます。

┌――――――――――――――――――――――――――
|3.
|定期実行で問題が出ているようですが、
|この「定期実行」はプログラムを再実行していますか?
|それとも、POPの接続、切断のみの再実行でしょうか?
|PopClientクラスのインスタンスを使いまわしている場合、
|このクラスが持つMessageLogクラスではログが蓄積され続けることになります。

プログラムは常駐しております。
ただし、メール受信処理は10秒周期のタイマーにて...

Dim PopClient As PopClient = New PopClient(BasP, strPOSetting, Port)
:
:
PopClient.Close()
PopClient = Nothing

として毎周期接続切断を行っておます。タイマー処理にはメール処理の二重実行を
防ぐフラグがあります。またこの処理は、マルチスレッドとして処理されています。

┌――――――――――――――――――――――――――
|4.
|OCN以外のメールサーバーでの実行は
|正常に行えていると解釈していいのでしょうか?
|それとも、OCN以外では実行実績が無いのでしょうか?

今までも現在も OCNしか使用していません。どうも OCN側の仕様変更に
問題があるのではないか?ということで、フリーのYahoo!メールかgmail
へ変更してはどうか?というアイディアも出ています。


以上、取り急ぎご返答させて頂きます。
お時間のあるときにでも、アドバイス頂ければ幸いです。
よろしくお願い申し上げます。
ファイル Re: 【TKMP】メール削除出来ない ( No.4 )
日時: 2011/07/06 19:26
名前: のり

お世話になります。
早速ですが、ログが取れました。
18:07:38でのDELEは正常に行えました。
18:25:19のDELEでプログラムが異常終了してしまいました。
DELE 1を受信するまでの時間に数秒の違いがあるのですが、関係は
ないでしょうか?
恐れ入りますが、ご確認頂ければ幸いです。
よろしくお願い申し上げます。
------------------------------------------------------------
18:07:24,送:+OK Hello there. <3703.1309943243@xxxxx.xxx.xx.jp>
18:07:24,受:CAPA
18:07:24,送:-ERR unsupported command
18:07:24,受:USER xxxyyyxxxy
18:07:24,送:+OK Password required.
18:07:24,受:PASS xxxxyy
18:07:24,送:+OK logged in.
18:07:24,受:LIST
18:07:24,送:+OK scan listing follows.
18:07:24,受:QUIT
18:07:24,送:+OK Bye-bye.
18:07:33,送:+OK Hello there. <5096.1309943253@xxxxx.xxx.xx.jp>
18:07:33,受:CAPA
18:07:33,送:-ERR unsupported command
18:07:33,受:USER xxxyyyxxxy
18:07:33,送:+OK Password required.
18:07:33,受:PASS xxxxyy
18:07:34,送:+OK logged in.
18:07:34,受:LIST
18:07:34,送:+OK scan listing follows1 2592.
18:07:34,受:UIDL
18:07:34,送:+OK 1 messages1 4314.cVccfS1KzyoPGdmzXvYYdrieyGY=.
18:07:34,受:TOP 1 0
18:07:34,送:+OK message top follows(この後にスペースが8000個)
18:07:35,受:RETR 1
18:07:35,送:+OK message(この後にスペースが8000個)
18:07:38,受:DELE 1 ←正常に削除されている
18:07:39,送:+OK message 1 marked for deletion
18:07:39,受:QUIT
18:07:39,送:+OK Bye-bye.
:
18:09:13,送:+OK Hello there. <18821.1309943353@xxxxx.xxx.xx.jp>
18:09:13,受:CAPA
18:09:13,送:-ERR unsupported command
18:09:13,受:USER xxxyyyxxxy
18:09:13,送:+OK Password required.
18:09:13,受:PASS xxxxyy
18:09:13,送:+OK logged in.
18:09:13,受:LIST
18:09:13,送:+OK scan listing follows1 2665.
18:09:13,受:UIDL
18:09:13,送:+OK 1 messages1 4315.X5jDaQIy9eSC24bMs9Qn1+LDAVo=.
18:09:13,受:TOP 1 0
18:09:13,送:+OK message top follows(この後にスペースが8000個)
18:09:14,受:RETR 1
18:09:14,送:+OK message follows(この後にスペースが8000個)
18:25:19,受:DELE 1 ←ここで落ちた
ファイル Re: 【TKMP】メール削除出来ない ( No.5 )
日時: 2011/07/06 23:55
名前: Toki◆pRU.c9X.EOI

早速の返信ありがとうございます。

ログについて気になった点があるので確認をお願いします。

18:07:34,送:+OK message top follows(この後にスペースが8000個)
18:07:35,受:RETR 1
18:07:35,送:+OK message(この後にスペースが8000個)

この部部について
スペース8000個はリターンコードまでの間に入っていて
1行でこれだけの文字数となっているのでしょうか?

RFCを確認してみましたところ1行の文字数についての制限は見当たりませんでしたが、
コマンドレスポンスの1行がこれだけの文字数となることは想定していないので、
これがサーバーから送られてくると問題が出るかもしれません。

最後の問題が出た部分も、ここでサーバーレスポンスを処理できず、
ログを出力する前に終了しているのだと思われます。

例外処理が行われずにプログラムが終了するのは、
スタックかメモリ関連が殆どなので、この点に絞って検証してみます。

ファイル Re: 【TKMP】メール削除出来ない ( No.6 )
日時: 2011/07/07 10:13
名前: のり

ご返答ありがとうございます。

ご指摘の部分は掲示板に貼り付けられないのでスペース8000個としました。
実際には...
+OK message top follows⇒この後ろに改行記号無くスペースが8000個の後に改行記号
+OK message⇒同上
となっており、どちらも1行です。
#必要であれば、テキストファイル(ログ)をHPにあるToki◆pRU.c9X.EOI様のメールアドレスへ
#添付ファイルで送付させて頂きます。

今まで(数年間)起きていなかった現象(異常終了)が突然起きるようになったのでいろいろ調べた
ところ近日にOCNメールサーバ側でシステムを変更更新(容量増加、他)したようです。
おそらくその時に何かがあったのだと思うのですが...。
#OCN側に詳しい調査は依頼できておりません。

対処頂けるのであればとても助かります。
よろしくお願い申し上げます。
ファイル Re: 【TKMP】メール削除出来ない ( No.7 )
日時: 2011/07/08 23:47
名前: Toki◆pRU.c9X.EOI

通信部分で問題が発生しているだろうと予想し、
ソースを見直していたら、送受信処理で予想外の例外が発生したとき、
通信スレッドで例外処理が行われずプログラムが終了してしまう問題を発見しました。

とりあえず修正版をVersion 2.4.21として公開しました。

これで、MailData.Deleteメソッドで例外が発生するようになると思います。

ただし、不定期に発生するエラーの原因は解決していませんので、
何か分かりましたらご報告よろしくお願いいたします。
ファイル Re: 【TKMP】メール削除出来ない ( No.8 )
日時: 2011/07/09 08:36
名前: のり

お世話様です、ご連絡ありがとうございます。

Try〜Catchでつかまえられなかったって状態(異常終了)は解決したということで
すね。
スペースを8000個受信した場合は大丈夫なのでしょうか?以前のログでは 1件の
メールを受信しただけでしたが、これが複数件数あった場合影響があるというこ
とはないでしょうか?

おそらく今回の修正にてプログラムの異常終了はなくなると思っています。
Try〜Catchでつかまる異常がどの様なものになるのかわかりませんが、何かあれ
ばこのスレッドに続けてご連絡させて頂きます。

短時間のうちにいろいろと対応頂き、誠にありがとうございました。
今後とも何卒、よろしくお願い申し上げます。
ファイル Re: 【TKMP】メール削除出来ない ( No.9 )
日時: 2011/07/13 10:08
名前: のり

お世話になっております、続報なのですが…

以前のプログラムが強制終了してしまう(Try〜Catch出来ない)という現象は起きなくなりました。
かわりに、Try〜Catch出来るのでプログラムで記録しているログに異常情報が残るようになりま
した。その内容では、

2011/07/12 00:28:34,受:DELE 11
2011/07/12 00:28:34,受:QUIT

このタイミングでTry〜Catch側に...

2011/07/12 00:28:34,I/O エラーが発生しました。
2011/07/12 00:28:34,I/O エラーが発生しました。

というメッセージのエラーが発生しています。
メールサーバ上のメールも削除されていません。

現在のところ毎周期削除されないため、どんどんメール件数が増えている状態です。
おそらくネットワークの環境に問題があるのではないかと思っているのですが、何か対処頂けれ
ばと思いご連絡させて頂きます。

ご検討頂ければ幸いです、よろしくお願い申し上げます。

p.s.別のネットワークから、同じメールサーバへBecky!でつないで削除すると削除されます。
ファイル Re: 【TKMP】メール削除出来ない ( No.10 )
日時: 2011/07/16 10:26
名前: のり

お世話になっております、続々報です。

全て解決しました。

1.「I/O エラーが発生しました。」の件は、ルータかHUBかケーブルか詳細は不明ですがハードの
 対処で回復しました。この異常は出なくなりました。

2.OCNメールサーバが遅い。と話していたものは、1.項の対処で正常のスピードに戻りました。

3.スペースが8000個。と言っていたものは依然とと8000個のスペースがありますが、プログラムが
 異常終了することは起きていません。

ということで、本件に関して全て完了です。お忙しいところいろいろと調査対応頂き誠にありが
とうございました。

今後とも何卒、よろしくお願い申し上げます。

Page: 1 |