ディレクトリ型のリンク集が作れる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;
        }
 
    }

ん、とりあえず、メールは文字化けしなくなった。

そして挫折へ

もう無理です。