UIDLの上限No.07556
ポン太 さん 02/07/12 00:37
 
秀まるお さん、こんにちは。ポン太 です。
バグが仕様か、はたまた私の勘違いか分かりませんが一応報告します。

サーバーに数千のメールがあると、UIDLのチェックがおかしくなるようで、空の
状態で一度すべてダウンロードした後(UIDL.BINにはちゃんとメールの数のUIDL
が記録されてあった)、すぐに再度受信すると、ダウンロード済みのメールをす
べて再受信します。
いろいろとメールの数を変えてボーダーラインを探しました。

メールの数UIDL.BINのサイズ
2585通130915バイトOK
2592通131236バイトNG
(注)UIDL.BINのサイズはUIDL.BINの日付の行を削除して、名前を変えて保存し
直したファイルのサイズです。従ってUIDLの文字列のバイト数+CRLF分となって
います。

ちなみに6700通くらいでテストを始めたときに、Outlook Expressでやったとき
は、問題なく2度目は何もダウンロードしませんでした。

どうもUIDLの比較用のバッファが128Kしかとっていないような気がしますが。

鶴亀メールVersion 2.00
Windows2000(SP2)


2002/07/12(金) 00:18 ポン太

[ ]
RE:07556 UIDLの上限No.07560
秀まるお さん 02/07/15 15:04
 
 鶴亀メールのUIDL用バッファには特に制限はありません。鶴亀メールは内部的にメ
モリサイズち制限の無い仮想的なバッファ(用のC++言語のクラス)を使って動作し
てまして、UIDLについても特にこれといった制限は無いはずです。

 バグや制限があるとしたら、メールサーバーの方かもしれないです。アカウント毎
の設定・メールサーバー・高度な設定で、「UIDL文字列をX-TuruKame-UIDL:ヘッダを
使って保存する」というオプションをONにして、重複して受信した2通のメールの
UIDL文字列を比較していただければはっきりすると思います。たぶん、2通は別々の
UIDLが割り振られているんじゃないかと思います。

 でも、それならOutlook Expressで受信した時も同じ結果になりそうですけ
ど。???

[ ]
RE:07560 UIDLの上限No.07563
ポン太 さん 02/07/15 16:58
 
秀まるお さん、こんにちは。ポン太 です。

>てまして、UIDLについても特にこれといった制限は無いはずです。

ということなら、バッファの件は忘れて下さい。
とにかく現象としては、数千通のメールがサーバーにあるときに、鶴亀メールだ
と同じメールをダウンロードするが、Outlook Express だと二度目はダウンロー
ドしないということです。


> バグや制限があるとしたら、メールサーバーの方かもしれないです。アカウント毎

メールサーバーは自作なんです。(^_^;
hidesoft.8:08091 でちょっと紹介させていただきましたが、ネットニュースを
中継するソフトがメールサーバーです。で、これのバグの可能性がないとは言い
切れませんが、なんせ Outlook Express だと正常に動作するのです。


>の設定・メールサーバー・高度な設定で、「UIDL文字列をX-TuruKame-UIDL:ヘッダを
>使って保存する」というオプションをONにして、重複して受信した2通のメールの
>UIDL文字列を比較していただければはっきりすると思います。たぶん、2通は別々の
>UIDLが割り振られているんじゃないかと思います。

X-TuruKame-UIDL は同じです。


> でも、それならOutlook Expressで受信した時も同じ結果になりそうですけ
>ど。???

ですよね。
だから問題は鶴亀側だと疑っています。なんせ数千通なので仕様ということなら
それはそれで良いかとは思ったのですが、バグということなら直していただきた
いところです(個人的には優先順位は低くてもかまいません)。

もし試していただけるのでしたら、サーバーのプログラムと再現できるデータを
私の Web の方に上げますけど。lzh で 4.3M くらいです。


2002/07/15(月) 16:40 ポン太

[ ]
RE:07563 UIDLの上限No.07564
秀まるお さん 02/07/15 17:05
 
>X-TuruKame-UIDL は同じです。

 ならやはり鶴亀メールのバグのようです。

 一応、自前のLAN環境にメールサーバーのテスト環境があるので、そこでテストし
てみます。

[ ]
RE:07564 UIDLの上限No.07565
ポン太 さん 02/07/15 17:30
 
秀まるお さん、こんにちは。ポン太 です。

> 一応、自前のLAN環境にメールサーバーのテスト環境があるので、そこでテストし
>てみます。

よろしくお願いします。

一応書いておきますが、UIDL 文字列のトータルサイズを疑っています(結構
128K ぴったりのところにボーダーラインがあったので)。ですので、私がテス
トした環境では(UIDL 文字列が制限の 70 バイトに近いところ)2600通程度で
再現しましたが、サーバーによっては UIDL 文字列が短いものも存在します。そ
の場合は 5000 とか 10000 通になるかもしれません。
釈迦に説法かとは思いますが、ねんのため。


2002/07/15(月) 17:19 ポン太

[ ]
RE:07563 UIDLの上限No.07566
秀まるお さん 02/07/15 17:42
 
 ソースコードを追いかけ直してみたら、ポン太さんの予言がぴったり当たっている
ことを発見してしまいました。

 UIDL.binファイルの読み込みの時に、たしかに128キロバイト以上の場合は「きっ
とUIDL.binが壊れているに違いない」ということで、すべてクリアしてしまってまし
た。

 さっそく修正させていただきます。

[ ]
RE:07566 UIDLの上限No.07567
ポン太 さん 02/07/15 18:11
 
秀まるお さん、こんにちは。ポン太 です。


> UIDL.binファイルの読み込みの時に、たしかに128キロバイト以上の場合は「きっ
>とUIDL.binが壊れているに違いない」ということで、すべてクリアしてしまってまし
>た。

ということはある意味仕様なんですよね。


> さっそく修正させていただきます。

仕様なら修正の必要もないのかもしれませんが。
もし「きっとUIDL.binが壊れているに違いない」という基準が 128K から別の数
字になるのでしたら、その数字をお教え下さい。それとも「きっとUIDL.binが壊
れているに違いない」という判断をやめるのでしょうか?


2002/07/15(月) 18:00 ポン太

[ ]
RE:07567 UIDLの上限No.07568
秀まるお さん 02/07/15 18:38
 
>字になるのでしたら、その数字をお教え下さい。それとも「きっとUIDL.binが壊
>れているに違いない」という判断をやめるのでしょうか?

 64メガバイトにしました。

 別にチェックしなくてもいいと言えばいいし、実際、チェックしてない所の方が多
いような気がしますけど…。一時期、SetFilePointerでセットするファイルポイン
ターの値にバグがあって、極端に大きなサイズのファイルが生成されるバグを出した
ことがありまして、そういうバグの出た所にはサイズチェックの処理が入っていたり
することがあります。

[ ]
RE:07568 UIDLの上限No.07569
ポン太 さん 02/07/15 19:22
 
秀まるお さん、こんにちは。ポン太 です。


> 64メガバイトにしました。

了解です。実質制限なしですね。
2.02 で修正されていることを確認しました。ありがとうございます。


2002/07/15(月) 19:18 ポン太

[ ]