[mew-dist 26123] Re: 1000 Octetを超える行を含むメッセージの処理
Eisaku YAMAGUCHI
eisaku at example.com
2005年 3月 14日 (月) 20:56:57 JST
山口です.
> 実装しました。
ありがとうございます.
試してみました.
早速ですが,気になった事が幾つかありました.
先ず,これが一番重要なのですが,
mew-encode-max-line-lengthを超える行が本文の最後の1行だけの
メイルではうまく機能しないようです.例えば
%%%%%%%%%% begin draft buffer
ヘッダ
----
foo<改行>
bar<改行>
C-u10000X<改行>
C-cC-c
%%%%%%%%%% end draft buffer
として,Internet Message Format的には 10000 Octet + CR + LF の行が
末尾の1行だけのメッセージを作って送信しても,何も聞かれません.;-)
> 変数は 3 つ。
>
> * mew-encode-max-line-length (default 1000)
mew-encoding-max-line-length は,defaultで990程度に抑制しておくのが
良いかと思います.
sendmailは復帰改行を含めて,990 Octetでhard breakしてくれちゃいます.
Postfixは設定で制御可能ですが,defaultではsendmailに倣ってか990 Octet
となっているようです.
qmailはナニもしません.その他のMTAは未確認です.
少なくともMTAとして,sendmail/Postfixを使用している場合且つ,ISO 2022
等を使用しているユーザには,990までにしておくと,hard breakされて悲し
い思いをせずに済むかもしれません.
> * mew-ask-encoding (default t)
> * mew-default-encoding (default mew-b64)
>
> アルゴリズム:
>
> 本文の行が mew-encode-max-line-length を越える
mew-encode.el では,
(when (>= (- (point) last) mew-encode-max-line-length) ;; including LF
ということですが,コメントは typo でしょうか?
--- mew-encode.el.orig Mon Mar 14 18:57:31 2005
+++ mew-encode.el Mon Mar 14 19:35:21 2005
@@ -598,7 +598,7 @@
(forward-line)
(catch 'long-line
(while (not (eobp))
- (when (>= (- (point) last) mew-encode-max-line-length) ;; including LF
+ (when (>= (- (point) last) mew-encode-max-line-length) ;; including CRLF
(if (not mew-ask-encoding)
(setq cte mew-default-encoding)
(setq cte (mew-input-encoding)))
> mew-ask-encoding が t なら b64 か qp の内から選択
> そうでなければ、mew-default-encoding が選ばれる
Mew4.2.50> Lines are too long. Input encoding (base64):
には,"base64" または "quoted-printable" で答えるようになっていますが,
それ以外のもの(例えば"hogehoge")を指定すると,mew-default-encoding
で送信されます.
mew-minibuf.elの最後では,そう振る舞うように書いてあるわけですが,
敢えて(error "Unknown encoding")などとして,再入力を促さないようにした
のは,何か特別な理由があるのでしょうか?
-- EY
Mew-dist メーリングリストの案内