php mail() 함수를 사용할 때 body 내용에 일부 글자가 느낌표로 바뀌어 깨지는 현상이 발생할 때가 있습니다.
예 ) 안녕하세요. 반 ! 습니다.
원하는 한글 문자가 나오지 않고 ! 나 ? 등의 문자로 메일을 받게 되었다면 이렇게 해결해 주시면 됩니다.
먼저 해당 원인은 메일 콘텐츠의 내용이 1,000자가 넘어가게 되어 발생하는 문제입니다.
한글 문자가 깨지는 문제는 메일 헤더에 Content-Transfer-Encoding: base64 \r\n 을, 메일 내용을 담은 변수(content라고 가정)에는 chunk_split(base64_encode($content)) 와 같이 지정해주셔야 합니다.
아래 코드 예제로 위 코드가 적용되는 부분을 확인할 수 있습니다.
// 메일 헤더 $headers = "From: hello<do-not-reply@a.com>\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: base64\r\n"; // 메일 제목 $title = "메일 제목입니다."; $title = "=?utf-8?B?".base64_encode($title)."?=\n"; // 메일 콘텐츠 $content = "<html lang='ko'><head><meta charset='utf-8'/></head><body><h1>Hello, World! 안녕하세요. 테스트입니다.</h1></body></html>"; // 메일 전송 mail("전송할 이메일 주소", $title, chunk_split(base64_encode($content)), $headers);
만약 이 방법으로도 해결되지 않는다면 메일 콘텐츠 내 head 태그에 <meta charset=’utf-8′ /> 을 추가하거나 메일 헤더에 \n 을 \r\n 으로 바꾸어 본 후에 다시 시도해보면 됩니다.
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…