[001] PHP Tip - PHP로 이메일 보내기 (PHPMailer, 구글(Google) SMTP 사용)

2023. 7. 21. 22:27백엔드&클라우드/PHP

반응형

안녕하세요~ totally 개발자입니다.

 

이 포스팅에서는 PHPMailer와 구글(Google)의 SMTP(Simple Mail Transfer Protocol)를 사용하여 이메일을 비용 없이 보낼 수 있는 방법에 대해서 살펴보도록 하겠습니다. 

 

준비사항:

1) PHP를 돌릴 수 있는 서버 환경(필자는 000webhost.com을 이용합니다)

2) 발신에 필요한 구글 gmail ID (개인 계정, 비즈니스 계정이어도 모두 gmail 설정에 접속할 수 있으면 됩니다)

3) 수신에 필요한 이메일 주소

 

Step 1: 먼저 구글에 로그인하여 gmail로 들어갑니다. 들어가서 설정 버튼을 누르시고 "모든 설정 보기"를 누릅니다.

 

 

Step 2: "전달 및 POP/IMAP" 메뉴를 클릭합니다.  

 

 

Step 3: IMAP 사용에 체크하고 "변경사항 저장"하여 반영해줍니다.

 

 

Step 4: "계정"으로 이동합니다.

 

 

Step 5: 좌측에서 "보안"을 선택합니다.

 

 

Step 6: "2단계 인증" 부분의 > 버튼을 눌러줍니다.

 

 

Step 7: 2단계 인증이 아직 완료되지 않은 경우 휴대폰 번호 등을 통하여 먼저 완료하여 주시고 그 다음 아래에 "앱 비밀번호"라고 나와 있는데 그 부분을 클릭합니다. (저는 이미 되어 있어 1개라고 나옵니다)

 

 

Step 8: 기타(맞춤 이름)를 선택하시고 phpmailer 등 맞춤 이름으로 지정하여 생성하시면 비밀번호가 나오는데 이 비밀번호를 복사해줍니다. 이 비밀번호는 더 이상 확인되지 않기 때문에 잘 복사해서 추후 PHP 코드에 붙여넣기 해야 합니다.

 

 

Step 9: https://github.com/PHPMailer/PHPMailer PHPMailer github에 접속합니다.

 

Step 10: <> Code 버튼을 누르시고 Download ZIP 해줍니다. 이 포스팅에서는 리눅스 명령어로 설치하는 것이 아니라 직접 다운로드하여 진행합니다. 다운로드를 받고 압축을 풀어 해당 프로젝트에 이동해 주시면 됩니다.

 

 

Step 11: 아래 코드를 참고하셔서 발신자, 수신자 이메일 주소 및 상단에서 복사해온 비밀번호를 붙여넣어줍니다.

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->CharSet = PHPMailer::CHARSET_UTF8;
$mail->SMTPAuth = true;
$mail->SMTPKeepAlive = true;
$mail->SMTPSecure = "tls";
$mail->Mailer = 'smtp';
$mail->Username = 'sender@gmail.com';
$mail->Password = 'password';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('sender@gmail.com', 'sender');
$mail->addAddress('receiver@gmail.com', 'receiver');
$mail->isHTML(true);
$mail->Subject = 'test subject';
$mail->Body = 'test content';
$mail->send();
echo 'Message has been sent';
?>
view raw sendEmail.php hosted with ❤ by GitHub

 

Step 12: 해당 PHP파일을 서버를 돌려 실행해주시고(localhost나 실제 호스팅된 서버에서 실행하시면 됩니다)

아래처럼 Message has been sent 문구가 에러 없이 잘 나왔다면 성공입니다.

 

수신자 측에서 이메일이 아래처럼 성공적으로 수신되었다면 아래처럼 확인이 바로 가능합니다.

 

개발에 도움되셨기를 바랍니다. 감사합니다.

 

 

 

반응형