[FastRoute] PHP 이메일

2020. 1. 8. 01:43FastRoute (PHP)

1. PHPMailer를 이용한 이메일 전송 (pdo.php)

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
    
require_once('./vendor/phpmailer/phpmailer/src/Exception.php');
require_once('./vendor/phpmailer/phpmailer/src/PHPMailer.php');
require_once('./vendor/phpmailer/phpmailer/src/SMTP.php');

function sendEmail($email, $random) {
	$mail = new PHPMailer(true);
	$mail->IsSMTP();

	try {
		$mail->Host = "smtp.gmail.com";
		$mail->SMTPAuth = true;
		$mail->Port = 465;
		$mail->SMTPSecure = "ssl";
		$mail->Username   = "[Gmail 계정명]";
		$mail->Password   = "[Gmail 비밀번호]";
		//$mail->SMTPDebug = 2;
		$mail->CharSet = "utf-8";
		$mail->SetFrom('[보내는 사람 주소]', '[표시될 이름]');
		$mail->AddAddress('[받을 사람 주소]', '[표시될 이름]');
		$mail->Subject = '[메일 제목]';	
		$mail->isHTML(true);
		$mail->Body =
			"<html>
				<body>
					<p> 회원님! </p>
					<p> 회원님의 임시 비밀번호는 다음과 같습니다. </p>
					<br>
					<h1>[ 랜덤 함수 ]</h1> 
					<br>
					<p> 반드시 로그인 후 비밀번호를 변경해주세요! </p>
				</body>
			 </html>";

		$mail->AltBody = "[텍스트 내용]";
            
		//$mail->MsgHTML((string)$random);
		$mail->Send();

	} catch (phpmailerException $e) {
		//echo $e->errorMessage();
		return false;
	} catch (Exception $e) {
		//echo $e->getMessage();
		return false;
	}

	return true;
}
입력
$mail = new PHPMailer(true); True 옵션일시 에러를 잡아
$mail->IsSMTP(); SMTP 사용
$mail->Host = "smtp.gmail.com"; 메일 보낼때 사용할 서버를 지정
$mail->SMTPAuth = true; SMTP 인증을 사용함
$mail->Port = 465; 메일 보낼때 사용할 포트를 지정
$mail->SMTPSecure = "ssl"; SSL 사용
$mail->Username   = "[Gmail 계정명]"; Gmail 계정
$mail->Password   = "[Gmail 비밀번호]"; Gmail 비밀번호
$mail->CharSet = "utf-8"; 한글깨짐 방지를 위한 문자 인코딩설정
$mail->SetFrom('[보내는 사람 주소]', '[표시될 이름]'); 보내는 사람 주소와 표시될 이름 (이름 생략가능)
$mail->AddAddress('[받을 사람 이메일]', '[표시될 이름]'); 받을 사람 주소와 표시될 이름 (이름 생략가능)
$mail->Subject = '[메일 제목]'; 메일 제목
$mail->Body = [HTML 형식] HTML 내용
$mail->AltBody = "[텍스트 형식]"; 텍스트 내용
$mail->MsgHTML((string)$random);  메일 내용 (HTML 형식 혹은 텍스트)
echo $e->errorMessage();    PHPMailer에서의 에러 출력
echo $e->getMessage();  모든 에러 출력력

※ 그 외에도 SMS 전달 기능을 지닌 함수도 존재

728x90

'FastRoute (PHP)' 카테고리의 다른 글

[FastRoute] PHP 팁  (0) 2020.01.08
[FastRoute] PDO 사용법  (0) 2020.01.07
[FastRoute] PHP 트랜잭션  (0) 2020.01.07
[FastRoute] 로그인 토큰 인증 (2)  (0) 2020.01.07