[mew-dist 29332] "CT: multipart/signed" なメッ セージの署名が無くなると quoted-prin table なパートが見えなくなる

Eisaku YAMAGUCHI <[email protected]> Sun, 06 Feb 2011 21:53:18 +0900
Newsgroups gmane.mail.mew.general.japanese
Organization Aichi Pref. Univ.
Message-ID <[email protected]>
ご無沙汰しています。山口です。

kazuさんもご覧になっているかもしれないのですが、とあるインターネットに
関わる社団法人のMLで、添付のような構成のメッセージが流れると、
quoted-printableなパートがデコードされない状況が確認されています。

Mailman の運用方法の問題であるとも言えるのですが、そんな運用のメッセー
ジを受信した人でも、見られるような修正はアリでしょうか。

Mewは

> MIME decoding error: No second boundary for Multipart/Signed

というエラーで quoted-printable のデコードを止めてしまっているようです。

個人的には、添付(mew-decode.el.diff)のような修正で回避してみていますが、
適切な対処か否かがわかりません。また、同様のエラー処理をしているものが、
mew-decode.elの中には他にもありますが、メッセージを寛容に見るという観点で、
確認戴くと、嬉しい人がいるのかもしれません。

以上、ご検討下さい。

-- Eisaku YAMAGUCHI

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US;
	rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
	micalg=sha1; boundary="------------ms030309090907000700040401"
X-Content-Filtered-By: Mailman/MimeDel 2.1.3
X-Mailman-Version: 2.1.3
Precedence: list

This is a cryptographically signed message in MIME format.

--------------ms030309090907000700040401
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: quoted-printable

snip

--------------ms030309090907000700040401--
mew-decode.el.diff (text/x-patch, 1.5 KB)
--- mew-decode.el.orig	Sun Feb  6 21:39:06 2011
+++ mew-decode.el	Sun Feb  6 21:38:59 2011
@@ -93,6 +93,9 @@
   (mew-xinfo-set-decode-err error-msg)
   (error error-msg))
 
+(defun mew-decode-error2 (error-msg)
+  (mew-xinfo-set-decode-err error-msg))
+
 ;;;
 ;;; Decoding a header
 ;;;
@@ -1026,7 +1029,7 @@
     ;;
     (unless (and (re-search-forward bregex nil t)
 		 (mew-decode-multipart-boundary-cont))
-      (mew-decode-error "No first boundary for Multipart/Signed"))
+      (mew-decode-error2 "No first boundary for Multipart/Signed"))
     (forward-line) ;; the beginning of the signed part
     (delete-region (point-min) (point)) ;; deleting content-header
     (goto-char (point-min)) ;; just in case
@@ -1033,7 +1036,7 @@
     ;;
     (unless (and (re-search-forward bregex nil t)
 		 (mew-decode-multipart-boundary-cont))
-      (mew-decode-error "No second boundary for Multipart/Signed"))
+      (mew-decode-error2 "No second boundary for Multipart/Signed"))
     (beginning-of-line)
     (setq end1 (1- (point))) ;; the end of the signed part
     (forward-line) ;; the beginning of the key part
@@ -1041,7 +1044,7 @@
     ;;
     (unless (and (re-search-forward bregex nil t)
 		 (mew-decode-multipart-boundary-end))
-      (mew-decode-error "No third boundary for Multipart/Signed"))
+      (mew-decode-error2 "No third boundary for Multipart/Signed"))
     (beginning-of-line) ;; the end of the encrypted part + 1
     (setq syntax2 (mew-decode-security-singlepart start2 (1- (point))))
     (setq proto (mew-syntax-get-value (mew-syntax-get-ct syntax2) 'cap))