본문 바로가기

PHP

안드로이드 이메일 인증번호 보내기 / PHPMailer / SMTP / Gmail

1. 깃허브에서 PHPMailer 을 로컬PC에 다운받습니다.

 

https://github.com/PHPMailer/PHPMailer

 

GitHub - PHPMailer/PHPMailer: The classic email sending library for PHP

The classic email sending library for PHP. Contribute to PHPMailer/PHPMailer development by creating an account on GitHub.

github.com

 

2. 압축파일을 해제합니다

 

3. 파일을 드래그하여 VScode로 옮깁니다.

 

4. 이동된 곳은 AWS 우분투 서버이며 폴더경로를 require처럼 작성합니다 (해당위치가 틀릴수있으니 꼭 경로확인!)

 

5. 지메일 SMTP 설정 (인증버튼 누르면 발송될 이메일!)  지메일에 로그인하고 오른쪽 상단의 톱니바퀴 (설정) 누릅니다.

 

6. 모든 설정 보기 클릭합니다

 

7. 전달 및 POP/IMAP 을 클릭합니다

 

8. 아래와 같이 설정 후 변경사항 저장을 클릭합니다.

10. 본인인증합니다.

 

11. 오른쪽 상단의 본인계정아이콘을 클릭합니다.

 

12. 구글 계정관리 클릭합니다

 

13. 보안 클릭합니다

14. 앱 검색에 앱 비밀번호 라고 검색합니다

 

15. 앱 전용 비밀번호 이름을 작성하고 만들기 클. (어떤 이름을 하던지 상관없음)

16. 아래와같이 4자리로 16자리의 비밀번호가 나옵니다.

 

17. 해당 코드에서 지메일계정 발급받은 비밀번호를 입력합니다. 비밀번호 입력할때 띄어쓰기 꼭 하셔요!

if (($_SERVER['REQUEST_METHOD'] == 'POST') || $android) {

    $email = $_POST['send_email'];
    $certification_Number = $_POST['certification_Number'];
    $mail = new PHPMailer(true);
    $Send_email = '해당지메일계정';
    $Send_password = 'aaaa aaaa aaaa aaaa';

    /* 사용자 email에 보낼 메세지 */
    $msg = "안녕하세요 " . "이메일 인증번호" . "\n" . "는
  " . "\n" . " " . $certification_Number . "
  " . "\n" . " 입니다.";
    /*사용자 E-mail에 임시비밀번호 보내기*/

    try {
        //1)메일 전송 성공
        // 서버세팅
        $mail->SMTPDebug = SMTP::DEBUG_SERVER; // 디버그 메시지를 모두 표시합니다.
        $mail->SMTPDebug = 0; // 디버깅 설정
        $mail->isSMTP(); // SMTP 사용 설정
        // 지메일일 경우 smtp.gmail.com, 네이버일 경우 smtp.naver.com
        $mail->Host = "smtp.gmail.com";               // 네이버의 smtp 서버
        $mail->SMTPAuth = true;                         // SMTP 인증을 사용함
        $mail->Username = $Send_email;    // 메일 계정 (지메일일경우 지메일 계정)
        $mail->Password = $Send_password;                  // 메일 비밀번호
        $mail->SMTPSecure = "ssl";                       // SSL을 사용함
        $mail->Port = 465;                                  // email 보낼때 사용할 포트를 지정
        $mail->CharSet = "utf-8"; // 문자셋 인코딩
        // 보내는 메일
        $mail->setFrom($Send_email, "인증번호 발송");
        // 받는 메일
        $mail->addAddress($email);
        // 메일 내용
        $mail->isHTML(true); // HTML 태그 사용 여부
        $mail->Subject = "메일제목";
        $mail->Body = $msg;     // 메일 내용

        /*Gmail인 경우*/
        // Gmail로 메일을 발송하기 위해서는 CA인증이 필요하다.
        // CA 인증을 받지 못한 경우에는 아래 설정하여 인증체크를 해지하여야 한다.
        $mail->SMTPOptions = array(
            "ssl" => array(
                "verify_peer" => false,
                "verify_peer_name" => false,
                "allow_self_signed" => true
            )
        );
        // 메일 전송
        $mail->send();
        // <!-- 새로운 비밀번호가 생성되었다는 다이얼로그 alert를 보낸 후 로그인 페이지로 이동 -->

    }
    //2)메일전송 실패
    catch (Exception $e) {
        //에러 로그
        echo '오류 발생: ' . $e->getMessage();
    }
}

 

18. 코드를 작성하고 해당안드로이드에서 인증번호 버튼을 누르면 아래와 같이 수신되는걸 확인 할 수 있습니다.

'PHP' 카테고리의 다른 글

SQL 문 사용하기 / 공부하기 / DB명령어/ 해석하기  (1) 2024.05.15
login.php / sql문 해석하기  (0) 2024.05.03