on
PHP Mailer로 메일 전송
PHP Mailer로 메일 전송
(네이버 아이디 사용)
기존 PHP Mailer 를 사용하는 경우, 네이버 메일 주소로는 메일 전송이 안되는 경우가 있습니다.
그럴 때 메일 전송이 가능한 PHP Mailer 소스를 공유합니다.
※ 다량 메일 전송, 대용량 첨부파일 메일 전송 등은 테스트 해보지 않았습니다.
이 소스를 사용하기 위해서는 PHP Mailer에 사용될 네이버 아이디가 하나 필요합니다.
(제재를 받거나 이용 정지를 당한 아이디는 PHP Mailer로 메일이 발송되지 않습니다.)
1. 네이버 아이디 설정
1) 네이버 메일함 -> 환경 설정
2) POP3/IMAP 설정
3) IMAP/SMTP 설정 탭
4) IMAP/SMTP 사용 체크 -> 확인
여기까지 했으면, 일단 네이버 아이디는 PHP Mailer를 사용할 준비가 완료되었습니다.
2. PHP 소스
PHPMailer (네이버).zip 첨부파일
위 첨부파일에 PHPMailer 에 필요한 파일들이 들어있습니다.
1) mailer.lib.php 상단에 PHPMailer/PHPMailerAutoload.php 를 include 하기위해 경로를 지정합니다. (PHPMailer 폴더를 업로드 후, 사용)
mailer.lib.php
환경설정 -> POP3/IMAP 설정 -> POP3/SMTP & IMAP/SMTP 중에 IMAP/SMTP 사용 // mailer("보내는 사람 이름", "보내는 사람 메일주소", "받는 사람 메일주소", "제목", "내용", "type"); // type : text=0, html=1, text+html=2 // ex) mailer("kOO", "[email protected]", "[email protected]", "제목 테스트", "내용 테스트", 1); function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="") { if ($type != 1) $content = nl2br($content); $mail = new PHPMailer(); // defaults to using php "mail()" $mail->IsSMTP(); // $mail->SMTPDebug = 2; $mail->SMTPSecure = "ssl"; $mail->SMTPAuth = true; $mail->Host = "smtp.naver.com"; $mail->Port = 465; $mail->Username = "네이버 아이디"; $mail->Password = "네이버 아이디 비밀번호"; $mail->CharSet = 'UTF-8'; $mail->From = $fmail; $mail->FromName = $fname; $mail->Subject = $subject; $mail->AltBody = ""; // optional, comment out and test $mail->msgHTML($content); $mail->addAddress($to); if ($cc) $mail->addCC($cc); if ($bcc) $mail->addBCC($bcc); if ($file != "") { foreach ($file as $f) { $mail->addAttachment($f['path'], $f['name']); } } return $mail->send(); } // 파일을 첨부하는 경우 사용 function attach_file($filename, $tmp_name) { // 서버에 업로드 되는 파일은 확장자를 주지 않는다. (보안 취약점) $dest_file = '경로지정/tmp/'.str_replace('/', '_', $tmp_name); move_uploaded_file($tmp_name, $dest_file); $tmpfile = array("name" => $filename, "path" => $dest_file); return $tmpfile; } ?>
2) PHP Mailer를 실제 사용할 파일 상단에 mailer.lib.php 파일을 include 한 후, 아래 예시처럼 mailer를 실행합니다.
(mailer.lib.php 파일은 첨부파일에 포함되어 있습니다.),
mailer_test.php (테스트를 위해 임의로 생성한 파일)
해당 PHP Mailer를 적용하여, 아래 처럼 메일 전송 테스트를 해보았습니다
from http://sein-jh.tistory.com/67 by ccl(A) rewrite - 2021-09-30 13:26:36