ディレクトリ型のリンク集が作れるfreeglobesでメール送信時の文字化けを直す。
前回、ディレクトリ型のリンク集が作れるfreeglobesをインストールしてみた。 そして、文字化けを途中まで直して、挫折した。でも、ちょうどいい勉強になると思って、今度はメール送信部分を直してみました。
メール送信のプログラム
いろいろ調べてみて、class/mailmanager.phpでメール送信してることが判明。
UTF-8でメール送信する
前回の記事の続きなので、UTF-8で使うことを前提に見直す。 PHP初心者なので、いろいろ調べながらやってみる。すると、HTMLメールを送るのは面倒くさそうな気がしたので、プレーンテキストでの送信でやってみる。 なんとなく、これならできそうな気がしてきた。・・・てか、freeglobesで送るメールって、わざわざHTMLメールにするほどのものでもなくね?
メールテンプレートを修正
language/xxx/mailフォルダ内のメールテンプレートを修正。HTMLタグを取り除く。UTF-8で保存。
mailmanager.phpを修正
メール送信プログラムをUTF-8にする。
修正前
function sendMail()
{
global $CONFIG;
if($this->generateMail())
{
// Mail headers
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$CONFIG['site_mail']."\r\n";
mail($this->to, $this->subject, $this->body, $headers);
return true;
}
else
{
return false;
}
}
修正後
function sendMail()
{
global $CONFIG;
if($this->generateMail())
{
// Mail headers
$headers = "From: ".$CONFIG['site_mail'];
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_send_mail($this->to, $this->subject, $this->body, $headers);
return true;
}
else
{
return false;
}
}
ん、とりあえず、メールは文字化けしなくなった。
そして挫折へ
もう無理です。
