http://macaronics.net/PHPMailer 에 소스가 있다.
mailer.lib.php
<?php include_once('./PHPMailer/PHPMailer/PHPMailerAutoload.php'); // 네이버 메일 전송 // 메일 -> 환경설정 -> POP3/IMAP 설정 -> POP3/SMTP & IMAP/SMTP 중에 IMAP/SMTP 사용 // 메일 보내기 (파일 여러개 첨부 가능) // mailer("보내는 사람 이름", "보내는 사람 메일주소", "받는 사람 메일주소", "제목", "내용", "type"); // type : text=0, html=1, text+html=2 // ex) mailer("kOO", "zzxp@naver.com", "zzxp@naver.com", "제목 테스트", "내용 테스트", 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 = "junhoda79"; $mail->Password = "@centos7901"; $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; } ?>
다음 아래 두줄만 변경하면 된다.
$mail->Username = "junhoda79";
$mail->Password = "@centos7901";
sendmail.php 즉 메일 전송에서는 다음과 같이 한줄이면 된다.
$sendmail=mailer($name, "ebirdrent@naver.com", "ebirdrent@naver.com", $subject, $content, "1");
<?php mailer("PHPMailer", "보내는사람메일@naver.com", "받는사람메일@naver.com", "조용한 웹 개발자의 블로그", "내용", 1); ?>
다음 원본 블로그 내용이다
기존 PHP Mailer 를 사용하는 경우, 네이버 메일 주소로는 메일 전송이 안되는 경우가 있습니다.
그럴 때 메일 전송이 가능한 PHP Mailer 소스를 공유합니다.
※ 다량 메일 전송, 대용량 첨부파일 메일 전송 등은 테스트 해보지 않았습니다.
이 소스를 사용하기 위해서는 PHP Mailer에 사용될 네이버 아이디가 하나 필요합니다.
(제재를 받거나 이용 정지를 당한 아이디는 PHP Mailer로 메일이 발송되지 않습니다.)
1. 네이버 아이디 설정
1) 네이버 메일함 -> 환경 설정
2) POP3/IMAP 설정
3) IMAP/SMTP 설정 탭
4) IMAP/SMTP 사용 체크 -> 확인
여기까지 했으면, 일단 네이버 아이디는 PHP Mailer를 사용할 준비가 완료되었습니다.
2. PHP 소스
위 첨부파일에 PHPMailer 에 필요한 파일들이 들어있습니다.
1) mailer.lib.php 상단에 PHPMailer/PHPMailerAutoload.php 를 include 하기위해 경로를 지정합니다. (PHPMailer 폴더를 업로드 후, 사용)
mailer.lib.php
<?php include_once('폴더경로/PHPMailer/PHPMailerAutoload.php'); // 네이버 메일 전송 // 메일 -> 환경설정 -> POP3/IMAP 설정 -> POP3/SMTP & IMAP/SMTP 중에 IMAP/SMTP 사용 // mailer("보내는 사람 이름", "보내는 사람 메일주소", "받는 사람 메일주소", "제목", "내용", "type"); // type : text=0, html=1, text+html=2 // ex) mailer("kOO", "zzxp@naver.com", "zzxp@naver.com", "제목 테스트", "내용 테스트", 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 include_once('경로지정/mailer.lib.php'); // mailer("보내는 사람 이름", "보내는 사람 메일주소", "받는 사람 메일주소", "제목", "내용", "1"); mailer("test", "test@naver.com", "test@naver.com", "제목", "내용", 1); ?>
해당 PHP Mailer를 적용하여, 아래 처럼 메일 전송 테스트를 해보았습니다.
<?php . . . mailer("PHPMailer", "보내는사람메일@naver.com", "받는사람메일@naver.com", "조용한 웹 개발자의 블로그", "내용", 1); ?>
테스트 결과 화면입니다.
네이버가 아닌 다른 메일 (gmail, daum 등) 에도 전송이 가능합니다.
이 소스를 악용할 경우, 해당 PHP Mailer에 사용한 네이버 아이디가 제재 및 정지 당할 수 있으니,
일반적인 메일 발송 용도로 사용하는 것을 추천드립니다.
2018.02.05 내용 추가
@hotmail.com 로의 전송은 스팸 메일함으로 들어가는 것을 확인하였습니다.
댓글 ( 5)
댓글 남기기