■ PHPMailer 다운받고 세팅하기.
01. https://github.com/PHPMailer/PHPMailer 사이트에 접속하여 PHPMailer-master.zip 파일을 다운받는다.
02. 다운받은 PHPMailer-master.zip 파일의 압축을 해제한다.
※ 필자는 포스팅 작성일 기준으로 PHP5 버전을 사용중이었기에 몇가지 문법이 맞지 않는 문제가 발생했었다.
PHP7 버전을 사용중이라면 문제가 없겠지만 아래 버전을 사용하는 경우는 아래의 문서를 수정하여 사용해야 한다.
첨부파일 : PHPMailer.phpSMTP.php
참고 : http://still.tistory.com/172
참고 : https://support.google.com/a/answer/2520500?hl=ko
■ PHPMailer를 사용한 Gmail 전송
# 소스코드
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception;
require "./php_mailer/src/PHPMailer.php"; require "./php_mailer/src/SMTP.php"; require "./php_mailer/src/Exception.php";
$mail = new PHPMailer(true);
try {
// 서버세팅 $mail -> SMTPDebug = 2; // 디버깅 설정 $mail -> isSMTP(); // SMTP 사용 설정
$mail -> Host = "smtp.gmail.com"; // email 보낼때 사용할 서버를 지정 $mail -> SMTPAuth = true; // SMTP 인증을 사용함 $mail -> Username = "지메일ID@gmail.com"; // 메일 계정 $mail -> Password = "지메일 비밀번호"; // 메일 비밀번호 $mail -> SMTPSecure = "ssl"; // SSL을 사용함 $mail -> Port = 465; // email 보낼때 사용할 포트를 지정 $mail -> CharSet = "utf-8"; // 문자셋 인코딩
// 보내는 메일 $mail -> setFrom("지메일ID@gmail.com", "transmit");
// 받는 메일 $mail -> addAddress("애플ID@me.com", "receive01"); $mail -> addAddress("네이버ID@naver.com", "receive02"); // 첨부파일 $mail -> addAttachment("./test.zip"); $mail -> addAttachment("./anjihyn.jpg");
// 메일 내용 $mail -> isHTML(true); // HTML 태그 사용 여부 $mail -> Subject = "PHPMailer 발송 테스트 입니다."; // 메일 제목 $mail -> Body = "PHPMailer 발송에 <b>성공</b>하였습니다."; // 메일 내용
// Gmail로 메일을 발송하기 위해서는 CA인증이 필요하다. // CA 인증을 받지 못한 경우에는 아래 설정하여 인증체크를 해지하여야 한다. $mail -> SMTPOptions = array( "ssl" => array( "verify_peer" => false , "verify_peer_name" => false , "allow_self_signed" => true ) ); // 메일 전송 $mail -> send(); echo "Message has been sent";
} catch (Exception $e) { echo "Message could not be sent. Mailer Error : ", $mail -> ErrorInfo; } ?> |
# 출력결과① - 브라우저를 통해 소스코드를 실행 시킨다.
# 출력결과② - 받는 메일함으로 접속을 하면 아래와같이 메일이 성공적으로 도착한 것을 확인 할 수 있다.
■ PHPMailer를 사용한 NAVER 메일 전송
앞서 지메일에서는 CA인증이 필요했지만 네이버 메일에서는 CA인증이 필요치 않았다.
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception;
require "./php_mailer/src/PHPMailer.php"; require "./php_mailer/src/SMTP.php"; require "./php_mailer/src/Exception.php";
$mail = new PHPMailer(true);
try {
// 서버세팅 $mail -> SMTPDebug = 0; // 디버깅 설정 $mail -> isSMTP(); // SMTP 사용 설정
$mail -> Host = "smtp.naver.com"; // email 보낼때 사용할 서버를 지정 $mail -> SMTPAuth = true; // SMTP 인증을 사용함 $mail -> Username = "네이버메일ID@naver.com"; // 메일 계정 $mail -> Password = "메일 비밀번호"; // 메일 비밀번호 $mail -> SMTPSecure = "ssl"; // SSL을 사용함 $mail -> Port = 465; // email 보낼때 사용할 포트를 지정 $mail -> CharSet = "utf-8"; // 문자셋 인코딩
// 보내는 메일 $mail -> setFrom("네이버메일ID@naver.com", "transmit");
// 받는 메일 $mail -> addAddress("애플ID@me.com", "receive01"); $mail -> addAddress("지메일ID@gmail.com", "receive02"); // 첨부파일 $mail -> addAttachment("./test.zip"); $mail -> addAttachment("./anjihyn.jpg");
// 메일 내용 $mail -> isHTML(true); // HTML 태그 사용 여부 $mail -> Subject = "PHPMailer 발송 테스트 입니다."; // 메일 제목 $mail -> Body = "PHPMailer 발송에 <b>성공</b>하였습니다."; // 메일 내용 // 메일 전송 $mail -> send(); echo "Message has been sent";
} catch (Exception $e) { echo "Message could not be sent. Mailer Error : ", $mail -> ErrorInfo; } ?> |
# 출력결과① - 브라우저를 통해 코드를 실행한다.
# 출력결과② - 받는메일은 Gmail로 지정하였다.