« 荘野ジュリの新曲「カゲロウ / うたかた」 | メイン | 「カゲロウ/うたかた」 オンラインショップ プチリンク集 »

メールヘッダ問題なんとか解決。

☆このエントリーで紹介している方法は、Movable Type のうち、3.11ja-3.151ja までのバージョンに有効です。
3.17ja (以降)をお使いの方は、メールヘッダ問題、解決したぜェェ for MT 3.17 をお読みくださることをおすすめします。

針中野ミュージック - (The) Sky - にコメントを下さるみなさま、ROMして下さるみなさま、毎度ありがとうございます。

さて、コメントをいただくごとに通知メールが来るように設定してあるんですが、メールが来るには来るもののなんかヘッダのあたりがへんてこりんなものが来ちゃってまして、しばらくそれで我慢しておりました。

ご覧のとおり、Outlook Express には差出人が空白で、本文の出だしにメールヘッダが迷い込んだようなメールがきちゃうんです。
(Blogのコメントのメールしかないじゃんと思われた方、そのとおりです。 というのも、自動振り分けでBlogのコメント専用のフォルダに分類してますから)
ためしにメールのソースを読んでみますと

Return-Path: <********@****.lolipop.jp>
Delivered-To: ********@**.main.jp
Received: (qmail **** invoked by uid ****); 22 Sep 2004 **:**:** +0900
Date: 22 Sep 2004 **:**:** +0900
Message-ID: <********@****.lolipop.jp>
Subject: =?ISO-2022-JP?B?WxskQj9LQ2ZMbiVfJWUhPCU4JUMlLxsoQg==?= - The Sky -]
=?ISO-2022-JP?B?GyRCNVUweiQtGyhCTm93?= On
=?ISO-2022-JP?B?QWlyGyRCJEMkRiRJJCYkaCEpGyhCIBskQiRYJE4/NyQ3JCQlMyVhGyhC?=
=?ISO-2022-JP?B?GyRCJXMlSBsoQg==?=
Content-Type: text/plain; charset="iso-2022-jp"
(以下略)

どうも「Subject」行にいらない改行が混じってしまうため、Outlook Express がその改行からあとをメールヘッダではなく本文とみなしてしまうのが原因の模様。

と、ここまではわかっていたのですが、どこを改造したらいいか迷っていた、というよりちょっと改造する気分になれなかったというのが正解かも(こら)

まずは「MT/App/Comments.pm」に手を加えたりしたのですが効果がなく、元に戻しました。
どうも原因はそこから呼ばれている 「MT/Mail.pm」が怪しい模様。
この中の17行目以降にある関数(メソッドというべきか)「send」をいじることで解決しました。

$hdrs->{Subject} =~ s/\r?\n/\r\n/g; # もともと33行目
# appended by Reia : 23-Sep.-2004
$hdrs->{Subject} =~ s/\r\n[^\Z]//g; # 追加行。「行末にないCR・LFコードは削除せよ」の意
# end of addition
$hdrs->{'Content-Type'} = qq(text/plain; charset="iso-2022-jp"); # もともと34行目

2005.2.2記: 以上の行数に関する記述は Movable Type 3.11ja-3.121ja のものについて書いています。MovableType 3.122ja 以降では、脆弱性の改善のため Mail.pm にいくつかのコードが書き加わっていますので、「文字化け対策」を挿入する行がずれています。 「もともと33行目/もともと34行目」とある場所は、3.122ja では「もともと37行目/もともと38行目」、3.15ja~3.151jaでは「もともと41行目/もともと42行目」、3.17jaでは「もともと40行目/もともと41行目」とそれぞれ読み替えてください。

改造したファイルをアップロードしたところで、自分で自分のエントリーに補足を兼ねてコメントしてみます♪

ちゃんと差出人が表示されています♪
ヘッダを読んでみると、Subject行にあった無駄な改行がなくなっていることがわかります。

Return-Path: <********@****.lolipop.jp>
Delivered-To: ********@**.main.jp
Received: (qmail **** invoked by uid ****); 23 Sep 2004 **:**:** +0900
Date: 23 Sep 2004 **:**:** +0900
Message-ID: <********@****.lolipop.jp>
Subject: =?ISO-2022-JP?B?WxskQj9LQ2ZMbiVfJWUhPCU4JUMlLxsoQg==?= - The Sky -]=?ISO-2022-JP?B?GyRCQXFMbiU4JWUlaiROPzc2SiFWJSslMiVtJSYhVxsoQiA=?==?ISO-2022-JP?B?GyRCJFgkTj83JDckJCUzJWElcyVIGyhC?=
Content-Type: text/plain; charset="iso-2022-jp"
(以下略)

ということで、へんてこメールヘッダ問題はなんとか解決した模様です。めでたし、めでたし。
……だけど、改造したばかりだというのに、MovableType 3.1の日本語版、もうすぐリリースなんですよね(汗)

* comments *

* trackbacks *

* Drecom RSS *