php 페이지에서 이메일을 발송할 경우 mail 함수를 이용하여 발송합니다만, mail() 함수를 이용하는 경우 서버에 sendmail 이 설치되어 있어야 가능합니다. sendmail 서비스가 중지되거나 하면 메일발송에 문제가 생기기도 합니다.
그래서, 서버의 sendmail 을 이용하지 않고 gmail 이나 네이버의 SMTP를 이용하여 웹상에서 메일을 발송 할 수 있는 방법중의 하나가 PHP Mailer 입니다
PHP Mailer 는 아래 사이트에서 다운로드 받으실 수 있습니다
https://github.com/PHPMailer/PHPMailer
우측 중앙에 있는 Clone or download 를 클릭하여 다운로드받은 후에 압축을 풀면 다음과 같이 나옵니다. 이를 웹서버에 업로드 합니다
네이버의 smtp 를 사용하고자 할 경우에는 이메일 세팅에서 smtp 를 사용함으로 변경해야 합니다
위 코드중에서 phpmail_test.html 문서는 테스트를 위해 만든 파일이며 아래와 같습니다
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require "./src/PHPMailer.php";
require "./src/SMTP.php";
require "./src/Exception.php";
$mail = new PHPMailer(true);
try {
// 서버세팅
//디버깅 설정을 0 으로 하면 아무런 메시지가 출력되지 않습니다
$mail -> SMTPDebug = 2; // 디버깅 설정
$mail -> isSMTP(); // SMTP 사용 설정
// 지메일일 경우 smtp.gmail.com, 네이버일 경우 smtp.naver.com
$mail -> Host = "smtp.naver.com"; // 네이버의 smtp 서버
$mail -> SMTPAuth = true; // SMTP 인증을 사용함
$mail -> Username = "아이디@naver.com"; // 메일 계정 (지메일일경우 지메일 계정)
$mail -> Password = "비밀번호"; // 메일 비밀번호
$mail -> SMTPSecure = "ssl"; // SSL을 사용함
$mail -> Port = 465; // email 보낼때 사용할 포트를 지정
$mail -> CharSet = "utf-8"; // 문자셋 인코딩
// 보내는 메일
$mail -> setFrom("help@naver.com", "이메일발송자명");
// 받는 메일
$mail -> addAddress("test1@naver.com", "receive01");
$mail -> addAddress("test2@teacher21.com", "receive02");
// 첨부파일
$mail -> addAttachment("./test1.zip");
$mail -> addAttachment("./test2.jpg");
// 메일 내용
$mail -> isHTML(true); // HTML 태그 사용 여부
$mail -> Subject = "이메일 제목"; // 메일 제목
$mail -> Body = "이메일 내용"; // 메일 내용
// 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;
}
?>
위 코드를 업로드 한 후 브라우저 상에서 열어보면 아래와 같이 메일일 발송된 것을 확인할 수 있습니다
아울러, PHP5 버전에서도 돌아갈 수 있게 PHPMailer.php 와 SMTP.php 코드중에서
배열선언 부분을 수정해야 하는데 이는 아래 사이트에서 다운로드 받으실 수 있습니다
http://magic.wickedmiso.com/m/23
아래 정보에서 참조하였습니다
http://magic.wickedmiso.com/m/23
https://github.com/PHPMailer/PHPMailer
댓글 영역