Re: Gnus+BBDBでUnparsable addre ssエラー
NAKAJI Hiroyuki <[email protected]> Tue, 07 Oct 2008 11:33:40 +0900
| Newsgroups | gmane.emacs.gnus.semi.japanese |
|---|---|
| Message-ID | <[email protected]> |
中治です。 >>>>> In <[email protected]> >>>>> Katsumi Yamaoka <[email protected]> wrote: > > さて、このケースでは、emacs/lisp/mail/rfc822.el は悪くなく、つまり、楽天 > > のFromの設定がrfc822違反ということになるでしょうか? > その From がこんなふうにエンコードされて届いたのであれば、 > From: =?ISO-2022-JP?B?WxskQjNaIXxFNxsoQl0bJEIlSCVpJVklayVLJWUhPCU5GyhC?= > <[email protected]> > RFC822 的には問題無くて、そういうものをデコードした結果を RFC822 > 用の関数に与えるのが間違いなのではないかと思います。とりあえずの > 対策としては、(rfc822-addresses thisaddr) の代わりに > (mapcar 'cadr (mail-extract-address-components thisaddr t)) > とでもすれば、"[楽●天]" に関してだけはエラーを起こさないように > なるでしょう。 From: =?ISO-2022-JP?B?WxskQjNaIXxFNxsoQl0bJEIlSCVpJVklayVLJWUhPCU5GyhC?= <[email protected]> なので、bbdb-snarf.el の問題である可能性も高いわけですか。 Index: bbdb-snarf.el =================================================================== RCS file: /cvsroot/bbdb/bbdb/lisp/bbdb-snarf.el,v retrieving revision 1.46 diff -u -r1.46 bbdb-snarf.el --- bbdb-snarf.el 20 Apr 2007 22:50:08 -0000 1.46 +++ bbdb-snarf.el 7 Oct 2008 02:32:15 -0000 @@ -584,7 +584,7 @@ (while (string-match "\\([^,]+\\)," addrline start) (let* ((thisaddr (substring addrline 0 (match-end 1))) (comma (match-end 0)) ;; rfc822-addresses trashes match-data - (parsed (rfc822-addresses thisaddr))) + (parsed (mapcar 'cadr (mail-extract-address-components thisaddr t)))) (if (string-match "(" (or (car parsed) "")) ;; rfc822 didn't like it. (setq start comma) (setq addrs としたら、エラーにはならなくなりました。 > 根本的な解は、おそらく BBDB がデコードした文字列を必要とする最後 > の場面まで、受信したままの生データを扱うようにすることでしょう。 > 言うは易し、ですが。 とりあえず、これでしばらく使ってみることにします。いつもありがとうございま す。 -- NAKAJI Hiroyuki (中治 弘行)