php에서 mail()에 첨부파일 넣기
MIME을 알고 $_FILES를 알면 할 수 있다.
2 min readSep 6, 2018
들어가기: MIME
일단 MIME을 간단히 이해할 필요가 있다.
위키백과: MIME
이걸 읽어보자. 특히 Multipart 메시지 항목을 간단히 이해하자.
그러면 이제 내용은 간단한데..
1. Content-Type: multipart/mixed의 헤더
2. Content-Type: text/html의 메일 본문(contents)
3. Content-Type: application/octet-stream의 첨부파일
1은 메일 헤더에 들어가고,
2와 3은 메일 바디에 들어간다.
2와 3도 내부적으로는 각각 메일 헤더와 메일 바디를 갖추고 있으며
이는 boundary로 구분된다.
들어가기: $_FILES
우선 $_FILES에 대해선 아래 문서를 읽어보자.
PHP: POST 방식 업로드
그리고 form은 아래처럼 구성해주면 된다.
enctype을 꼭 주는걸 잊지 말자.
다른 input들과 마찬가지로 file도 name으로 받아올 수 있다.
메일 보내기
코드로 간단히 설명할게요
#30: 메일의 끝에 --
가 있는 것이 포인트!
반대로 말하면 --
가 없다면 3을 반복해서
첨부파일 하나가 아니라 여럿을 보낼 수 있다.
참고: 파일 들어왔는지 확인
$_FILES["file"]["size"] > 0
으로 확인하면 된다.
isset()같은거 생각대로 안 됨..