[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 メーリングリストの案内