Indyを使ってメールを受信したところ、"EIdTableNotFound"例外が発生するのはなぜですか?

解決


うめ  2003-07-11 02:07:52  No: 4083

IndyのTIdPOP3コンポーネントを使ってメール受信のDLLを作成しています。
しかし、添付したファイルを受信しようとすると(Retrive)必ずEIdTableNotFound例外を起こすファイルがあります。しかし、
・エラーを起こしたファイル名を別のファイルに付けると正しく送信される。
・エラーを起こしたファイルに別の名前を付けると正しく送信される。
・ヘッダ項目を調べてみても正常に送られたファイルと見比べてみてもおかしなところは見受けられない。
・送り側、受け側を変更しても同様なエラーを起こす
のです。

いかなる理由が考えられますか?
ちなみに、出力されるメッセージは「Coding table entry not found」です。


にしの  2003-07-11 06:50:57  No: 4084

添付ファイルが日本語名だからとか?
エラーが起きたファイル名はどのようなものでしょうか。
エラーが起きなかったファイル名はどのようなものでしょうか。


うめ  2003-07-11 19:06:21  No: 4085

送ったファイルのファイル名は「0708_nor_02.jpg」という画像ファイルです。
ただ、この名前を別のファイルに付けてみたところ正常に動作します。
また、エラーを起こしたファイルに別の名前「日本語名など」をつけても
正常に動作します。


にしの  2003-07-11 19:25:36  No: 4086

Indy8ですよね。
Indy9,Indy10のソースを検索してみましたが、EIdTableNotFoundという例外は定義されていませんでした。
見てみると、Base64のデコードで、テーブル(0-9,a-z,A-Z,=)にない文字があった場合に起きるみたいです。
バージョンが古いようでしたら、バージョンアップしてみてください。
現在、Indy8は8.00.23が出ています。


うめ  2003-07-11 20:35:49  No: 4087

Indy9にバージョンアップさせたところ、例外が起きなくなりました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加