// 현 예제는 그누보드 기반이다.
// 현 예제는 PHPMailer 라이브러리를 이용하였다.
1. gmail 사이트로 가서 [설정] 버튼을 클릭하고 [모든 설정]을 클릭한다.
2. [전달 및 POP/IMAP] 탭으로 이동한다.
3. IMAP 액세스를 허용한다.
4. 상단 우측의 프로필을 클릭하여 구글 계정 관리로 이동한다.
5. 보안 메뉴로 이동 후, 2차 인증을 이용하는지 확인한다. 2차 인증을 이용중이지 않다면, 2차 인증을 활성화한다.
6. 앱 비밀번호를 생성한다. 앱 비밀번호 설정이 보이지 않는다면 상단의 검색창을 이용하면 된다.
7. 앱 비밀번호를 생성했다면 생성된 비밀번호를 자주 확인 가능한 곳에 적어둔다.
앱 비밀번호는 SMTP 기능의 비밀번호로 이용한다.
안내가이드에 계정 비밀번호를 앱 비밀번호로 변경하라고 적혀있지만 변경하지 않아도 된다.
8. PHPMailer 라이브러리를 다운로드 받은 후, 원하는 곳에 include를 이용하여 삽입한다.
9. mailer 함수를 생성하여 아래의 코드를 작성한다.
<?php
include './_common.php';
include_once(G5_PHPMAILER_PATH.'/PHPMailerAutoload.php');
// 메일 보내기 (파일 여러개 첨부 가능)
// type : text=0, html=1, text+html=2
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
{
global $config;
global $g5;
// 메일발송 사용을 하지 않는다면
if (!$config['cf_email_use']) return;
if ($type != 1){ $content = nl2br($content); }
$mail = new PHPMailer(); // defaults to using php "mail()"
if (defined('G5_SMTP') && G5_SMTP) {
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = G5_SMTP; // SMTP server
if(defined('G5_SMTP_PORT') && G5_SMTP_PORT){
$mail->Port = G5_SMTP_PORT;
}
$mail->Username = '{구글 계정}'; // SMTP username
$mail->Password = '{구글 계정 앱비밀번호}'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, only 'tls' is accepted
$mail->SMTPAuth = true;
$mail->Encoding = "base64"; // 기본값이 8bit 이므로, base64로 변경함.
}
$mail->CharSet = 'UTF-8';
$mail->From = $fmail;
$mail->FromName = $fname;
$mail->Subject = $subject;
$mail->AltBody = ""; // optional, comment out and test
$mail->SMTPDebug = true;
$mail->msgHTML($content);
$mail->addAddress($to);
if ($cc)
$mail->addCC($cc);
if ($bcc)
$mail->addBCC($bcc);
//print_r2($file); exit;
if ($file != "") {
foreach ($file as $f) {
$mail->addAttachment($f['path'], $f['name']);
}
}
return $mail->send();
}
mailer("{발진자 명}", "{구글 이메일 주소}", "{수신 이메일 주소}", "test", "test");
?>
# 참고1
최근에 정책이 변경되어 gmail이 보안 수준이 낮은 앱 및 google 계정 란에 사용자 이름과 비밀번호를 작성하는 것만으로 로그인 요청을 시도하는 것을 지원하지 않는다.
이로인해 PHPMailer를 이용한 SMTP 이메일을 발송하려면 추가로 2단계 인증과 앱 비밀번호가 필요하게 되었다.
# 참고2
https://support.google.com/mail/answer/7126229?hl=ko&visit_id=638145453401183722-978997694&rd=2#zippy=%2C%EB%8B%A8%EA%B3%84-%EC%9D%B4%EB%A9%94%EC%9D%BC-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%9D%98-smtp%EC%99%80-%EA%B8%B0%ED%83%80-%EC%84%A4%EC%A0%95-%EB%B3%80%EA%B2%BD%2C%EB%8B%A8%EA%B3%84-imap%EC%9D%B4-%EC%BC%9C%EC%A0%B8-%EC%9E%88%EB%8A%94%EC%A7%80-%ED%99%95%EC%9D%B8
'웹 개발 이야기' 카테고리의 다른 글
주소 기반 산업 지원 서비스 (0) | 2023.06.14 |
---|---|
[MYSQL] 날짜,시간 자동 적용 (0) | 2023.05.25 |
[LINUX] crontab 설정 방법 (0) | 2023.03.09 |
[MYSQL] 국내 은행 리스트 (0) | 2023.03.09 |
htaccess rewrite sample (0) | 2023.03.09 |
댓글