[mew-dist 22921] Re: 取り込めないメール

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2003年 1月 20日 (月) 17:22:58 JST


From: Koga Youichirou <y-koga at example.com>
Subject: [mew-dist 22915] Re: 取り込めないメール

> 前に調べたときの情報が見つけられないでいるのですが、問題発生時には
> クライアント側から FIN を送って、その後 RST を送っていたと思います。

想像するに、

(1) クライアント側が close() か shutdown() するので、POP サーバへ FIN 
    が飛ぶ。

(2) その間に POP サーバが、メールの続きを送って来る。クライアント側は、
    当然 RST を返す。

という状況ではないかと推測します。

それで、問題を起こすとしたら、process-send-string() しかないように思い
ます。

(a) POP サーバが送ってきたメールにより、Emacs の coding-system 周りが
    狂う。

(b) (よくわからないけど) process-send-string() が呼ばれる。

(c) 下位関数の send_process は、(Emacs が狂っているので)文字列の計算に
    失敗しており、いつまでたってもすべての文字を送れないと誤認する。そ
    こで、send_process_end() が呼ばれて、コネクションが close() してし
    まう。

かなぁ。

process-send-string() が問題で、process-send-region() がこの問題に強い
のであれば、

(defun mew-pop-process-send-string (pro &rest args)
  (with-temp-buffer
    ;; (mew-set-buffer-multibyte nil) 
    (insert (apply 'format args))
    (insert mew-cs-eol)
    (process-send-region (point-min) (point-max))))

とすれば OK かもしれません。

(i) 問題が起ったら、上の関数を *scratch* バッファなどで評価し、メール
    が取り込めるか試して下さい。

(ii) それでもダメなら、コメントを外して再度評価し、メールが取り込める
     か試して下さい。

--かず



Mew-dist メーリングリストの案内