-
2007/08/09 9:03 오전 #2809
wp 2.1.3 버전을 쓰고있는데 메일 인코딩시 한글깨짐 현상이 발생합니다
(메일제목, 보내는사람, 받는사람 부분)마침
https://kopress.kr/forums/topic.php?id=247
글이 똑같은 상황이라 보고 참조하려 했는데 버젼이 틀려서 파일들도 안맞고
라인도 안맞고 제가 php에는 문외한이라 봐도 잘모르겠습니다 -_-;도움주시면 감사하겠습니다 ^^
2007/08/11 9:11 오후 #2810워드프레스 2.2 부터는 해당 오류가 발생하지 않는걸로 알고있습니다.
하지만 그 이전 버전에서는 플러그인 파일을 만들어서 사용하셔야 오류를 해결 할 수 있습니다.
2.2로 업그레이드 할 여건이 되지 않는 다면 링크를 남기신 글의 제 답변 중 플러그인을 활용하는 방식이 있으니 그에 따라 적용 해 보세요.
============================
플러그인으로 만드는 방법을 잘 모르시겠다면 아래 코드 내용을 그대로 복사하여 메모장 또는 텍스트에디터에 붙여 넣은 뒤 파일 이름을 wp-mail-hack.php 로 저장 한 뒤 플러그인으로서 사용하시면 됩니다.
<?php
/*
Plugin Name: WP Mail Hack
Plugin URI: http://082net.com/
Description: Fix mail header for utf-8.
Version: 1
Author: Cheon, Young-Min
Author URI: http://082net.com/
*/if ( !function_exists('wp_mail') && !function_exists('mail_header_to_utf8') ) :
function wp_mail($to, $subject, $message, $headers = '') {
if( $headers == '' ) {
$headers = "MIME-Version: 1.0n" .
"From: wordpress@" . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])) . "n" .
"Content-Type: text/plain; charset="" . get_settings('blog_charset') . ""n";
}
$subject = mail_header_to_utf8($subject);
if(preg_match('/From:(s*?)"(.*?)"(s*?)<(.*?)>/ie', $headers, $match)) {
$new = explode("n", $headers);
$new_headers = "";
for($i=0;$i<count($new); $i++) {
if(!empty($new[$i])) {
$new_headers .= (strpos('From: "', $new[$i]) !== false)?'From: "'.mail_header_to_utf8($match[2]).'" <'.$match[4].'>'."n":$new[$i]."n";
}
}
$headers = $new_headers;
}
return @mail($to, $subject, $message, $headers);
}function mail_header_to_utf8($text) {
if(strpos(strtolower($text), "=?utf-8") === FALSE) {
$text = "=?UTF-8?B?".base64_encode($text)."?=";
}
return $text;
}
endif;?>
붙여 넣을 때 맨 처음 <?php 와 맨 마지막 ?> 이외에 빈 공간이 생기지 않도록 주의 하세요.
2007/08/11 9:11 오후 #2811워드프레스 2.2 부터는 해당 오류가 발생하지 않는걸로 알고있습니다.
하지만 그 이전 버전에서는 플러그인 파일을 만들어서 사용하셔야 오류를 해결 할 수 있습니다.
2.2로 업그레이드 할 여건이 되지 않는 다면 링크를 남기신 글의 제 답변 중 플러그인을 활용하는 방식이 있으니 그에 따라 적용 해 보세요.
============================
플러그인으로 만드는 방법을 잘 모르시겠다면 아래 코드 내용을 그대로 복사하여 메모장 또는 텍스트에디터에 붙여 넣은 뒤 파일 이름을 wp-mail-hack.php 로 저장 한 뒤 플러그인으로서 사용하시면 됩니다.
<?php
/*
Plugin Name: WP Mail Hack
Plugin URI: http://082net.com/
Description: Fix mail header for utf-8.
Version: 1
Author: Cheon, Young-Min
Author URI: http://082net.com/
*/if ( !function_exists('wp_mail') && !function_exists('mail_header_to_utf8') ) :
function wp_mail($to, $subject, $message, $headers = '') {
if( $headers == '' ) {
$headers = "MIME-Version: 1.0n" .
"From: wordpress@" . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])) . "n" .
"Content-Type: text/plain; charset="" . get_settings('blog_charset') . ""n";
}
$subject = mail_header_to_utf8($subject);
if(preg_match('/From:(s*?)"(.*?)"(s*?)<(.*?)>/ie', $headers, $match)) {
$new = explode("n", $headers);
$new_headers = "";
for($i=0;$i<count($new); $i++) {
if(!empty($new[$i])) {
$new_headers .= (strpos('From: "', $new[$i]) !== false)?'From: "'.mail_header_to_utf8($match[2]).'" <'.$match[4].'>'."n":$new[$i]."n";
}
}
$headers = $new_headers;
}
return @mail($to, $subject, $message, $headers);
}function mail_header_to_utf8($text) {
if(strpos(strtolower($text), "=?utf-8") === FALSE) {
$text = "=?UTF-8?B?".base64_encode($text)."?=";
}
return $text;
}
endif;?>
붙여 넣을 때 맨 처음 <?php 와 맨 마지막 ?> 이외에 빈 공간이 생기지 않도록 주의 하세요.
-
AuthorPosts
- 답변은 로그인 후 가능합니다.