2012年4月28日

XCL2.2で通知メールのサブジェクトが切れる(ISO-2022・・)と表示される件

なぜか突然,XCL2.2で通知メールのサブジェクトが切れてしまう,
そして,本文に ISO-2022・・とヘッダが表示されるようになってしまった.

なにかのモジュールを更新した影響なのか,
でも更新した覚えがないし,不思議な現象です.

同じような現象をググってみると,
文字コードとかいろいろ書いてあるけど,

xoopsmailerlocal.phpにある

$encoded = mb_encode_mimeheader($str, 'ISO-2022-JP', 'B', "\r\n", 9);

$encoded = mb_encode_mimeheader($str, 'ISO-2022-JP', 'B', "\n", 9);

に直したら直りました.

これって,ヘッダのエンコードで ¥r¥n を入れて,送信時にも ¥r¥n を入れて,
二回連続で改行ということになってヘッダ終了ってことになっているようです.

ちなみに

 

$encoded = mb_encode_mimeheader($str, 'ISO-2022-JP', 'B', "", 9);

としてしまっても,動く.ただ,ヘッダに含められる文字数を超えてしまうので,
きちんと改行してあげなければならないから,¥n を入れる方法が,
とりあえずの対処法ですね.