The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン TKMPのメール受信エラーについて
日時: 2008/01/07 16:16
名前: Taka

TKMPを利用させていただき、ありがとうございます。

TKMPで、MailData.ReadHeader時にエラーが発生致しましたので、
ご報告させていただきます。

状況としましては、本文のないメールを受信しようとすると
下記のエラーが発生致します。

------------------------------------------------------
System.IndexOutOfRangeException はハンドルされませんでした。
Message="インデックスが配列の境界外です。"
Source="TKMP"
StackTrace:
場所 TKMP.Pop.Command.}. ()
場所 TKMP.Pop.Command.(). ()
場所 TKMP.Pop.Command. . (Stream , Int32 ()
場所 TKMP.Pop. .)()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
InnerException:
------------------------------------------------------

本来は正しいメールではないと思うのですが、
スパムメールなどを受信するときに、エラーが発生致しました。
何か方法がありましたら、教えて頂けないでしょうか?

Page: 1 |

ファイル Re: TKMPのメール受信エラーについて ( No.1 )
日時: 2008/01/07 23:33
名前: Toki◆pRU.c9X.EOI

ご報告ありがとうございます

発生個所近辺は特定したのですが、発生条件がはっきりしないため再現できずに困っています。

エラー発生時の通信内容をキャプチャすることは可能でしょうか?


ファイル Re: TKMPのメール受信エラーについて ( No.2 )
日時: 2008/01/08 11:27
名前: Taka

早速のお返事ありがとうございます。
通信のキャプチャは時間がかかりそうなので、
私の環境で再現する方法をお送り致します。

実際にエラーが発生したメールは削除してしまったのですが、
TELNETにて下記のコマンドでメールを送信すると同様のエラーが
発生致しました。

------------------------------------------------------
telnet smtp.abc.jp 25

HELO abc.jp
MAIL FROM: <xxx@abc.jp>
RCPT TO: <xxx@abc.jp>
DATA
.
------------------------------------------------------

取り急ぎご報告させて頂きます。
ファイル Re: TKMPのメール受信エラーについて ( No.3 )
日時: 2008/01/09 07:41
名前: Toki◆pRU.c9X.EOI

送信コマンドから察するとメールヘッダーが存在しないメールでエラーが発生するように思うのですが、

私が扱える幾つかのメールサーバーではこのコマンド手順では、メールヘッダーが自動的に追加され本文だけが空のメールとして処理されてしまいました。

メールサーバーについての情報が分かるのならお教えください
ファイル Re: TKMPのメール受信エラーについて ( No.4 )
日時: 2008/01/09 12:44
名前: Taka

メールサーバは、Windows 2003でXMail 1.22を稼働させています。

また、おっしゃる通りメールヘッダーが存在しないメールで
エラーが発生するようです。下記にテストした内容を記載します。

■正常:メールヘッダがあるメール
DATA
354 Start mail input; end with <CRLF>.<CRLF>
subject: test
.
250 OK <SB4B63>

■エラー:本文のみのメール
DATA
354 Start mail input; end with <CRLF>.<CRLF>

test
.
250 OK <SB4B63>

ファイル Re: TKMPのメール受信エラーについて ( No.5 )
日時: 2008/01/09 22:37
名前: Toki◆pRU.c9X.EOI

完全に同じ環境は構築できませんでしたが、
Windows 2000 + Xmail 1.25 にてテストを行いました。


まず、TELNETでヘッダー無しのメールを送信しましたが、
メールボックス内では
Return-Path: <xxxxxxx@xxxx>
Delivered-To: xxxxxx@xxxx
のヘッダ情報が追加され完全に空のメールは作成できませんでした。
Xmailのバージョンによって動作が違うのか、環境設定が違うのかは不明です。

Xmailのバージョンを1.25にすることで問題が解決する可能性は有ります。

しかし、空メール受信時のエラーはTKMPの問題なのでさらにテストしてみました。


Xmailのメールボックス内のファイルを直接修正し空メールを作成したところ
報告いただいた不具合と同様の現象が発生しました。

LISTコマンドでサイズ0のメールがあると受信処理のバッファサイズが不足することが分かりました。

近日中のTKMPの修正を行いたいと思います。

現時点での解決方法は
受信前にメールサイズ(Lengthプロパティ)の値を確認し
0の場合は破棄又は、受信を行わない方法が有ります。

サイズ0のメールは得られる情報が無いので、直ぐに削除しても問題ないと思います。
ファイル Re: TKMPのメール受信エラーについて ( No.6 )
日時: 2008/01/10 21:18
名前: Taka

環境を構築してのテスト、本当にありがとうございます。

頂いた解決方法である受信前にメールサイズの値を確認し、
受信を行わないようにしました。

TKMPのバージョンアップ後に、試した結果をご報告できればと思います。

ファイル Re: TKMPのメール受信エラーについて ( No.7 )
日時: 2008/01/14 18:55
名前: Taka

メールサーバ及びTKMPを最新版に変更致しまして、
0バイトメールでのエラーに関しましては対応が行えました。
ありがとうございます。

ただ、本件とは別の原因かもしれませんが、
正常稼働しました環境に、トレンドマイクロのスパム対策ソフト
「InterScan VirusWall スタンダードエディション(体験版)」
追加し、上記ソフト経由でメールを受信しますと、
同様のエラーが発生致しましたので、ご報告させていただきます。

環境
■サーバー側
OS:Windows 2003 Server
メールサーバ:xmail 1.25
スパム対策:InterScan VirusWall スタンダードエディション 体験版

■クライアント側
Windows XP + TKMP.DLL Version 2.4.10

■エラー発生時のコマンド
telnet smtp.abc.jp 25

HELO abc.jp
MAIL FROM: <xxxx@abc.jp>
RCPT TO: <xxxx@abc.jp>
DATA
.


■エラー時の通信内容(POP3)
+OK Welcome!
CAPA
-ERR Invalid command or incorrect command sequence
USER xxxx#pop3.abc.jp
+OK Password required for xxxx@abc.jp
PASS patek
+OK Maildrop has 1 messages (83 bytes)
LIST
+OK 1 83
1 83
.
UIDL
+OK 1
1 1200000000850.10006.2221.smtp
.
TOP 1 0
+OK message is 83 bytes
Return-Path: <xxxx@abc.jp>
Delivered-To: xxxx@abc.jp
X-TM-AS-Product-Ver: : ISVW-6.02.0.7180-5.0.0.1023-15666000
X-TM-AS-Result: : Yes-50.400000-2-31-1
X-TM-AS-Category-Info: : 31:0.000000
X-TM-AS-MatchedID: : 114031-114032-114033-114034-114039-10002-10111-120190-1
.20191-120190-120191-120190-120191
Subject: =?utf-8?B?U1BBTV9IOg==?=

.
ファイル Re: TKMPのメール受信エラーについて ( No.8 )
日時: 2008/01/14 22:43
名前: Toki◆pRU.c9X.EOI

LISTコマンドでメールサイズを読み出しているのに
ウイルスチェックソフトがデータを追加してメールサイズを増加しているのが原因だと思います。

受信内容の部分が追加されたのか正確にはわかりませんが、
83Byte以上あることは確かだと思います

ライブラリでは受信処理部分でファイルサイズの情報を期待しないように書き換えれば対応可能で、
十分な受信バッファサイズを確保するだけだと思っています。

別件もあるので、同時に修正いたします

また、ウイルスチェックソフトでメールデータへ情報を付加しないような設定はありませんか?





ファイル Re: TKMPのメール受信エラーについて ( No.9 )
日時: 2008/01/15 21:50
名前: Taka

LISTでのサイズ違いについて了解致しました。
ありがとうございます。

> ウイルスチェックソフトでメールデータへ情報を付加しないような設定はありませんか?
製品版でも確認しましたが、データ付加についての設定は
ありませんでしたので、ご報告させて頂きます。

Page: 1 |