Wanderlust が吐き出すメイルヘッダの UA フィールドについて
実はお仕事で某所とのメイルのやりとりでエラーなリプライが戻ってきていて困っていたのですが昨晩その原因が (なんとなく) 判明したので以下にメモを。
リプライに盛り込まれているエラーメセジ (出すことできそげなもの) は以下です (整形してます)。
#550 5.6.0 CAT.InvalidContent.Exception: InvalidCharsetException, Character set name (ISO-2022-JP-2) is invalid or not installed.
で、何が invalid なのかというと wanderlust が吐く以下な UA の
User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.8 Emacs/23.3 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
APEL/10.8 の直前にある括弧の中の文字列がメイル送信時に以下なカンジに変換されてて (一部のみ)
(=?ISO-2022-JP-2?B?R29qGyQoRCtXGyhC?=) APEL/10.8 Emacs/23.3
これは実は iso-2022-jp-2 な文字列で、という事なはずなのですが、送った先で何度か転送されている内のある smtp サーバで iso-2022-jp-2 なんてエンコードは知らんけんね、ということでエラーになってしまっていた模様。具体的に何がこうするのか、は雲の中のことなので分かりません。
実はここまで判明するまでにも偉いヒトにエラーリプライのヘッダ情報を見てもらったりしてようやく分かったのですが、どうやら Wanderlust はこうした挙動を起こす smtp サーバのために以下な設定の例をコメントアウトされた形で .wl に置いておいてくれました。
;; 短い User-Agent: フィールドを使う ;(setq wl-generate-mailer-string-function ; 'wl-generate-user-agent-string-1)
現在はこの設定が有効になっておりますが、エラーなリプライが戻ってくるサーバを使っておられる方に再度メイルを投げる機会が再びやってくるのかどうかは分かりません。
ちなみに盛り込んだ結果、UA なフィールドには以下が出力される模様。
User-Agent: Wanderlust/2.14.0 (Africa) Emacs/23.3 Mule/6.0 (HANACHIRUSATO)
例のアレが出力されていないのが分かります。