[mew-dist 27697] Re: 添付ファイル名
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2007年 6月 18日 (月) 17:42:03 JST
山本です。
> やっぱり、付けない方が RFC2047 に忠実ですよね。
>
> A name="=?iso-2022-jp?B?GyRCNnUbKEIueGxz?="
>
> B name==?iso-2022-jp?B?GyRCNnUbKEIueGxz?=
>
> C name= =?iso-2022-jp?B?GyRCNnUbKEIueGxz?=
>
> Domino Server は上記のいずれも OK なんですが、UbiqMail Ver 3.0.0 と
> Webmail[version 1.0(JP)] (いずれも ISP が提供する WebMUA) では、 A のみ
> が OK でした。
了解です。
A を実装しました。以下パッチを付けます。これで、うまく OE にファイル名
を渡せるでしょうか?
--かず
Index: mew-encode.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-encode.el,v
retrieving revision 1.103
diff -c -r1.103 mew-encode.el
*** mew-encode.el 15 Feb 2007 04:53:35 -0000 1.103
--- mew-encode.el 18 Jun 2007 08:40:27 -0000
***************
*** 694,699 ****
--- 694,709 ----
(or (string= (car first) mew-ct-mle)
(string= (car first) mew-ct-smm)))))
+ (defun mew-broken-name (cdpl)
+ (let ((mew-encode-word-max-length 1000) ;; xxx
+ (file (nth 1 (assoc "filename" cdpl)))
+ name)
+ (when (and file (string-match mew-regex-nonascii file))
+ (setq name (car (mew-header-encode-string file)))
+ ;; name must not be double-quoted here.
+ ;; mew-heaer-insert will do this later
+ (list "name" name))))
+
(defun mew-encode-singlepart (syntax &optional path depth buffered coverp)
;; path is nil if called make-single or security multipart
;; buffered is t if called make-single
***************
*** 709,715 ****
(no-encoding (mew-encode-no-mime-encoding privacy))
(mew-inherit-7bit (mew-encode-limit-7bitp privacy))
(beg (point))
! charset-cte charset bodybeg cst ask-cst)
(setq charset-cte (mew-encode-mime-body ctl cte (or buffered file) no-encoding))
(goto-char beg)
(mew-set '(charset cte) charset-cte)
--- 719,725 ----
(no-encoding (mew-encode-no-mime-encoding privacy))
(mew-inherit-7bit (mew-encode-limit-7bitp privacy))
(beg (point))
! charset-cte charset bodybeg cst ask-cst broken-name)
(setq charset-cte (mew-encode-mime-body ctl cte (or buffered file) no-encoding))
(goto-char beg)
(mew-set '(charset cte) charset-cte)
***************
*** 718,723 ****
--- 728,735 ----
(setq ctl (mew-syntax-get-params ctl))
(setq ctl (mew-delete "charset" ctl))
(setq ctl (cons ct (cons charset ctl))))
+ (setq broken-name (mew-broken-name cdpl))
+ (if broken-name (setq ctl (nconc ctl (list broken-name))))
(mew-header-insert mew-ct: ctl)
(mew-header-insert mew-cte: cte)
(and cd (mew-header-insert mew-cd: cd))
Mew-dist メーリングリストの案内