cformsからのメールがSH905iで受信すると文字化けた。その対策
2009/04/25(土) • Category: HEADLINE, WordPress•cformsはSubject、Bodyをブログの文字コードで送信する。
通常はデフォルトのUTF-8で送信されるが、一部のメーラや携帯では文字化けしてしまいます。
そこで、メールの文字コードをUTF-8からISO-2022-jpに修正してみました。
(cformsの設定状態によって修正箇所は異なりますので、ご了承ください)
cformsの設定状態
- 管理者のみにメール(BCCは空白)
- Ajaxは未使用
- HTMLメールは付けない
次の1ファイルを修正する
/wp-content/plugins/cforms/lib_nonajax.php
1)371行を書き換える
オリジナル
$fmessage .= 'Content-Type: text/plain; charset="' .
get_option('blog_charset') . '"' . $eol . $eol;
修正後(1行追加)
$fmessage .= 'Content-Type: text/plain; charset="iso-2022-jp"' . $eol . $eol ; $fmessage .= 'Content-transfer-encoding: 7BIT' . $eol . $eol;
2)377行を修正する
オリジナル
$fmessage .= $eol . $formdata . $eol;
修正後
$fmessage .= $eol . mb_convert_encoding($formdata,'iso-2022-jp','utf-8') . $eol;
3)500行を修正する
オリジナル
$sentadmin = @mail($to, encode_header($vsubject), $fmessage.$attached, $headers);
修正後(1行追加)
$vsubject=mb_encode_mimeheader($vsubject,'iso-2022-jp','utf-8'); $sentadmin = @mail($to, mb_convert_encoding($vsubject, 'iso-2022-jp','utf-8'), $fmessage.$attached, $headers);
posted by kaz








