워드프레스에서 오는 메일의 한글이 깨질때

한글 사용자는 또 한 번 웁니다

워드프레스로 옮겨온지 3일됐는데, 답글이 달릴때마다 무척 거슬리는 것이 하나 있었으니 그게 바로 글자가 잔뜩깨진 메일이었다.
정확하게는 제목과 사용자를 알아볼 수 없도록 깨어지는 거였다.

그래서! 삽질 좀 했다.

WordPress-ROOT/wp-includes/pluggable-functions.php 파일을 열어서 다음 줄을 찾는다(160번째줄 주변).

function wp_mail($to, $subject, $message, $headers = '') {
    if( $headers == '' ) {
        $headers = "MIME-Version: 1.0\n" .
        "From: wordpress@" . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])) . "\n" .
        "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
    }

그 아래에 다음과 같은 코드를 추가한다.

//{{{ encode for korean language
$charset = get_settings('blog_charset');
$subject = '=?'.$charset.'?b?'.base64_encode($subject).'?=';

if (preg_match('/From: "(.+)"/m', $headers, $match)) {
    $name = $match[1];
    $headers = preg_replace('/(From: )"'.preg_quote($name).'"/', '$1"=?'.$charset.'?b?'.base64_encode($name).'?="', $headers);
}
//}}}

Leave a Reply