티스토리 뷰
PHP의 mail() 함수를 사용하여 이메일을 보낼 때, 한글 문자가 깨지는 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해서는 이메일 본문을 올바른 인코딩으로 변환해야 합니다.
다음은 PHP에서 mail() 함수를 사용하여 한글 문자가 포함된 이메일을 보내는 예제입니다.
$to = 'recipient@example.com';
$subject = '한글 제목';
$message = '한글 본문';
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: sender@example.com" . "\r\n";
mail($to, $subject, $message, $headers);
이 예제에서는 Content-type 헤더에 charset=UTF-8을 설정하여 이메일 본문이 UTF-8 인코딩으로 작성되었음을 나타내고 있습니다. UTF-8은 대부분의 언어를 지원하는 범용 인코딩 방식이므로, 한글 뿐만 아니라 다른 언어의 문자도 올바르게 표시됩니다.
따라서, 이메일 본문을 작성할 때 UTF-8 인코딩으로 작성하고, Content-type 헤더에 charset=UTF-8을 설정하는 것이 중요합니다. 이를 통해 한글을 포함한 다양한 문자를 올바르게 표시할 수 있습니다.

첨부파일을 넣어서 보내고 싶을때
PHP의 mail() 함수를 사용하여 이메일에 첨부 파일을 추가할 때, 이메일 본문에 한글 문자가 포함된 경우에도 이를 올바르게 처리할 수 있습니다. 이를 위해서는 이메일 본문을 적절한 인코딩으로 변환하고, 첨부 파일도 올바른 형식으로 인코딩하여 전송해야 합니다.
다음은 PHP에서 mail() 함수를 사용하여 이메일에 첨부 파일을 추가하고, 이메일 본문에 한글 문자가 포함된 경우에 대한 예제입니다.
$to = 'recipient@example.com';
$subject = '한글 제목';
// 이메일 본문 작성
$message = "한글 본문입니다.";
// 이메일 본문 인코딩 설정
$message = iconv('UTF-8', 'EUC-KR', $message);
// 첨부 파일 경로 및 파일명
$filename = '/path/to/attachment.pdf';
$basename = basename($filename);
// 첨부 파일 MIME 타입 확인
$filetype = mime_content_type($filename);
// 첨부 파일 읽기 및 base64 인코딩
$filedata = chunk_split(base64_encode(file_get_contents($filename)));
// 이메일 헤더 작성
$headers = "From: sender@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"boundary\"\r\n";
$headers .= "Content-Disposition: attachment; filename=\"$basename\"\r\n";
// 이메일 본문 작성
$body = "--boundary\r\n";
$body .= "Content-Type: text/plain; charset=\"EUC-KR\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($message));
// 첨부 파일 작성
$body .= "--boundary\r\n";
$body .= "Content-Type: $filetype; name=\"$basename\"\r\n";
$body .= "Content-Disposition: attachment; filename=\"$basename\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= $filedata . "\r\n\r\n";
// 메일 전송
mail($to, $subject, $body, $headers);
이 예제에서는 iconv() 함수를 사용하여 이메일 본문을 EUC-KR 인코딩으로 변환하였습니다. 이메일 본문과 첨부 파일의 MIME 타입과 인코딩 방식을 정확하게 지정하고, 첨부 파일은 base64 인코딩하여 전송하였습니다. 또한, 이메일 본문과 첨부 파일을 각각 다른 boundary로 구분하여 전송하였습니다.
따라서, 이메일에 첨부 파일을 추가하면서도 이메일 본문의 한글 문자를 올바르게 처리할 수 있습니다.
'IT tech Coding > php' 카테고리의 다른 글
php 문자열 끝에 개행문자 삭제 (0) | 2023.02.28 |
---|---|
php 주소창 문구 변경하는 코드 (0) | 2023.02.28 |
[php + JS] 웹사이트에 첨부파일(pdf 등) 올리는 실제 프로그램 구현과정 (0) | 2023.01.08 |
[php] 오늘 날짜 또는 특정일 기준 5일전 날짜가 설정한 일자의 범위에 있는지 확인하는 소스코드 (0) | 2022.12.21 |
php+javascript 이미지파일 다중 업로드 만들기 서버저장 동작구현 (0) | 2022.11.11 |
- Total
- Today
- Yesterday
- 도면자동생성
- Bootstrap 5
- #웹개발
- 웹제작강의안2주차
- #tuigrid #자바스크립트그리드 #행삽입 #행삭제 #웹개발팁 #프론트엔드개발 #javascriptgrid #데이터테이블 #ui개선 #그리드커스터마이징
- 오블완
- 구글드라이브API
- json파일형태보기
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 엑셀셀보호
- #동적ui
- 캐드자동작도
- ajax오류메시지
- isset을 적용해야 하는 이유
- #데이터무결성
- 엑셀보호
- 오토핫키가이드
- #트리구조
- #카테고리트리
- #php에러해결 #php경고메시지 #nonwellformednumeric #php초보자팁 #웹개발에러 #프로그래밍디버깅 #php정규식 #코드디버깅팁 #웹개발문제해결 #php숫자형변환
- json파일편하게보는법
- 자바스크립트 코드 기본지식
- #계층형데이터
- 티스토리챌린지
- 엑셀입력보호
- General error: 2031
- 효율적코딩방법
- #textarea #자동높이조절 #ux개선 #웹개발 #프론트엔드 #자바스크립트 #html팁 #웹디자인 #uiux #코딩팁
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- #데이터베이스설계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |