[Mew-dist 17510] auto-detect CT by X-Mailer (test).
Shuichi KITAGUCHI
kit at example.com
2001年 5月 23日 (水) 23:22:34 JST
北口です。
config の guess がかなり便利で、その枠組で対 Outlook 対策ができそう
だったのでやってみました。ただ、問題はあります。
・やりたいこと
X-Mailer: が Outlook だったら、添付ファイルの CT: を Mew が判定でき
ない場合のデフォルトを "Text/Plain" ではなく "Application/Octet-Stream"
にする。
・パッチ
最後に添付。
・mew-config-alist
("outlook"
("default-ct" . "application/octet-stream"))
というエントリを追加。
ここまでで case を "outlook" にすると、CT: のデフォルトが変更される
ようになります。それに加えて、
・mew-config-guess-alist
("X-Mailer:"
("Microsoft Outlook" . "outlook"))
というエントリを追加。
とすることでリプライ時限定ですが、相手が Outlook だったら自動的に
case が変更されます。
・問題点
case は 1 つしか guess できないので、"outlook" にヒットしてしまうと
他が "default" になる。よって、事実上 "default" と "outlook" しか
使えない(Summary Mode などで明示的に case を指定する場合は、
"outlook,foo" と指定できるので大丈夫)。
問題点がかなり痛いのですが、guess と連携したいのと、「判断できなかった
場合のデフォルトの CT: を変更したい」ということにも使いたいのとで、
こんな感じかなと考えています。
--
Shuichi Kitaguchi // ki at example.com
--- mew-config.el.original Wed May 09 11:43:52 2001
+++ mew-config.el Wed May 23 21:23:42 2001
@@ -224,6 +224,11 @@
(defun mew-header-alist (&optional case)
(mew-cfent-value case "header-alist" mew-header-alist))
+;;
+
+(defun mew-default-ct (&optional case)
+ (mew-cfent-value case "default-ct" "text/plain"))
+
;;;
;;; Setting Config
;;;
--- mew-vars2.el.original Wed May 09 17:03:39 2001
+++ mew-vars2.el Wed May 23 22:47:24 2001
@@ -349,8 +349,12 @@
(defsubst mew-ctdb-by-ct (ct)
(mew-assoc-match2 ct mew-mime-content-type 0))
-(defsubst mew-ctdb-by-file (ct)
- (mew-assoc-match2 ct mew-mime-content-type 1))
+(defsubst mew-ctdb-by-file (file)
+ (let ((ct (mew-assoc-match2 file mew-mime-content-type 1))
+ (cases (mew-tinfo-get-config)))
+ (if (and (equal (nth 1 ct) ".*") cases)
+ (mew-ctdb-by-ct (mew-default-ct cases))
+ ct)))
(defsubst mew-ctdb-ct (attr)
(mew-capitalize (nth 0 attr)))
Mew-dist メーリングリストの案内