PHPMailer 를 이용한 email 발송
https://github.com/PHPMailer/PHPMailer
깃 허브에서 라이브러리를 다운 받는다.
그리고 아래와 같이 사용한다.
붉은색 칠한 부분이 삽질한 부분이다.
구글계정은 구글계정 이메일을 그대로 넣으면 되는데,
Password 부분은 그냥 구글 패스워드를 입력하면 될 줄 알았다.
그러나 역시 그렇게 단순한 문제가 아니었다.
삽질끝에 나를 도와준 것은 역시 스텍오버플로우 흉아였다.
http://stackoverflow.com/questions/17227532/gmail-530-5-5-1-authentication-required-learn-more-at
위 내용중에 아래와 같은 답변이 있었다.
You need to go here https://security.google.com/settings/security/apppasswords
then select Gmail and then select device. then click on Generate. Simply Copy & Paste password which is generated by Google.
답변을 참고로 하여 구글 시큐리티로 접속을 하여 아래와 같이 설정을 하고,
시큐리티 패스워드 16값을 제공받아 위 소스코드에 적용하니 정상적으로 이메일이 발송됨을 확인하였다.
위 링크대로 하셈~ 2차비밀번호 방식이 변경됨
============================================================= 2020-02-10
구글 smtp tls 포트가 25로 변경되었나봄...
메일 발송이 안되어서, 구글링하다가 알게된 사실.....
function sendMailGoogle($param)
{
require_once("./plugin/PHPMailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->IsSMTP();
//$mail->SMTPSecure = "ssl";
$mail->Port = 25;
//$mail->Port = 465; // 465 or 587 set the SMTP port for the GMAIL server
$mail->SMTPSecure = "tls";
//$mail->Port = 587; // 465 or 587 set the SMTP port for the GMAIL server
$mail->Host = "smtp.gmail.com";
$mail->ContentType = "text/html";
$mail->Charset = "utf-8";
$mail->Encoding = "base64";
$mail->SMTPAuth = true;
$mail->Username = sendMail_GOOGLE_USER;
$mail->Password = sendMail_GOOGLE_PASS;
$mail->setFrom($mail->Username, SITE_NAME);
$mail->addAddress($param['addAddress']); // 받을 이메일 주소
$mail->Subject = $param['Subject'];
$mail->Body = $param['Body'];
//$mail->WordWrap = 50;
return $mail;
}