XAMPP メール送信の日本語が文字化けする

XAMPP 1.7.1のメール送信日本語化についての設定手順です。 

デフォルトのままだと、メール送信の日本語の文字化けが発生してしまいました。 

まずは、C:\xampp\php\php.ini を修正します。 

mbstring(マルチバイト文字:つまり日本語)の設定をしている行が 

コメントアウトされているため、コメントを解除します。 

<修正前> 
;mbstring.language = Japanese 
;mbstring.internal_encoding = EUC-JP 
;mbstring.http_input = auto 
;mbstring.http_output = SJIS 
;mbstring.encoding_translation = Off 
;mbstring.detect_order = auto 
;mbstring.substitute_character = none 
;mbstring.func_overload = 0 

こいつらのセミコロンを取って、 

2,4,5行目の値を以下のように変更します。 

<修正後> 
mbstring.language = Japanese 
mbstring.internal_encoding = SJIS 
mbstring.http_input = auto 
mbstring.http_output = SJIS 
mbstring.encoding_translation = On 
mbstring.detect_order = auto 
mbstring.substitute_character = none 
mbstring.func_overload = 0 

次に C:\xampp\apache\conf\extra\httpd-languages.conf を修正します。 

# * It is generally better to not mark a page as 
# * being a certain language than marking it with the wrong 
# * language! 
# 
# DefaultLanguage nl 
DefaultLanguage ja    ←修正します。 
 
AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2 
AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4 
AddCharset shift_jis .shift_jis .sjis 
AddDefaultCharset shift_jis    ←追加します。 

PHPのスクリプトを記述します。 

if(mb_send_mail( 
        '<送信メールアドレス>', 
        '件名', 
        'タイトル', 
        'From: <送信メールアドレス>' . "\r\n" . 
        'To: <宛先メールアドレス>' . "\r\n" . 
        'Reply-To: <>' . "\r\n" . 
        'X-Mailer: PHP/' . phpVersion())) 
{ 
    echo '<b>SUCCESS TO SEND</b><br>'; 
} 
else 
{ 
    echo '<b>fail to mail</b><br>'; 
} 
 

参考: 

Web2.1 XAMPPの文字化けを回避(PHP、MySQL、phpMyAdmin)|FLASHとPHPはちかっぱ難しい
Web2.0的なサイトを作ろう…ともがいている過程&#...

コメント

タイトルとURLをコピーしました