개발자의 끄적끄적

[PHP] 메일 보내기 - 지메일 [펌] 본문

개발/php

[PHP] 메일 보내기 - 지메일 [펌]

효벨 2020. 6. 11. 02:00
728x90
반응형

[PHP] 메일 보내기 - 지메일 [펌]

 

 

PHP를 이용하여 메일을 보내는 방법에 대한 포스팅 입니다.

 

메일 서버를 이용하지 않고 네이버 혹은 지메일의 서버를 이용하여 메일을 보내는 것입니다.

 

저는 처음엔 아무것도 모르고 "메일을 보내고 싶다"라는 마음을 가지고 문제를 해결하는데 하루종일 걸린 것 같습니다.

 

검색은 구글을 이용하였고, 다른 사람의 소스코드를 이용하여 성공하였습니다. 하지만 올라와 있는 대략의 코드들은 코드가 동작할지는

 

모르겠지만, 아무런 설정이 되어있지 않은 제 것에는 코드가 먹히지 않았습니다.

 

※ 정리

1) 메일 서버 없이 PHP로 메일 보내기

2) 네이버 혹은 지메일의 SMTP 서버를 이용하여 메일 발송

3) 오토셋 유저에게도 가능합니다.

 

2. 필요사항

 

※ 본인 컴퓨터에 설치되어 있는 프로그램

 

Autoset9 오토셋9, 이클립스 IE(서버와 연동이 되어 있음)

 

※ 받아야 할 파일

PHPmailer

https://github.com/PHPMailer/PHPMailer/releases

 

- 버전은 상관없이 다운로드 하고, 받은 파일 중에서 2개의 파일만 필요로 합니다.

- class.smtp.php, class.phpmailer.php

 

3. 과정

 

1) 이클립스에서 새로운 프로젝트를 만들고

 

 

2) Test.php를 생성합니다.

 

3) class.smtp.php, class.phpmailer.php 를 붙여넣기 합니다.

  (우선은 성공여부가 먼저이기 때문에 같은 경로에 붙여넣기 합니다.)

 

 

4) php.ini 설정 (중요!)

 

 

extension=php_openssl.dll 의 주석을 제거합니다.

 

그리고 아파치를 재시작합니다.

 

 

4. Test.php의 코드 

 

※ 여기서 require_once에서 파일의 상대경로를 반드시 확인하기 바랍니다.

 

※ 비밀번호는 진짜로 입력하셔야 합니다.

 

Colored By Color Scripter

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?php

 

require_once("class.phpmailer.php");                          // 다운 받은 파일 중에서 이 파일을 가져옵니다.

 

$mail = new PHPMailer();                                // mailer 객체를 생성합니다.

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = "tls";                            // 보안 방식입니다. tls를 사용하셔야 합니다.

$mail->Host = "smtp.gmail.com";                        // 지메일의 smtp서버 주소 입니다.

$mail->Port = 587;                                    // 포트 번호니다. 587번을 사용해야 합니다.

$mail->Username = "ghen4268@gmail.com";                // smtp서버에 연결할 계정입니다.

$mail->Password = "**********";                        // 계정 비밀번호 입니다.

$mail->SetFrom('ghen4268@gmail.com');                    // 송신자 이메일 

$mail->FromName = "From";                            // 송신자 이름

$mail->AddAddress("ghen4268@naver.com");                // 수신자 이메일

$mail->Subject = "제목입니다.";                        // 메일 제목 

$mail->Body = "내용입니다.";                            // 메일 내용

$mail->IsHTML (true);                                    // html임을 알림

 

if (!$mail->Send())                                    // 메일을 전송하고 결과를 출력합니다.

{

    echo "Error: $mail->ErrorInfo";

}

else

{

    echo "Message Sent!";

}

 

?>

 

 

5. 후기

 

전혀 모르는 상태에서 시작하여 아침일찍 시작하여 저녁이 다 되어서 찾아서 해결하였습니다. 

 

그리고 정리해보니 과정이 상당히 간단하네요.

 

6. 참고사항

 

1) 아이디에 접근을 할 수 없는 오류 메시지가 뜰 경우

 

여전히 오류 메시지가 뜰 때에, 그리고 그 내용이 계정에 대해 접근을 못했다고 했을 때에는 지메일의 아이디 설정을 해줘야 합니다.

 

구글이 사용자의 아이디에 대한 비정상적인 접근을 허용하지 않았기 때문이죠. 이럴 때에 지메일에 접속을 해 보면 다음과 같은 메일이

 

와 있습니다.

 

 

 

이 메일을 클릭하여 들어가면,

 

 

 

이와 같은 내용이 포함되어 있습니다, 이 링크를 클릭하여 들어간 후,

 

 

위와 같이 '허용'을 클릭 해주고, Test.php 파일을 다시 컴파일 하면, 'Message Sent'를 볼 수 있습니다!

 

 

2) PHPmailer 의 한글설정

 

상당히 간단합니다. .class.phpmailer.php 파일을 클릭하여 들어가서 

 

 

'charset'을 찾은 후 그 라인을 그대로 복사하여 utf-8로 바꾸어주면 완성!

 

 

출처 : https://m.blog.naver.com/PostView.nhn?blogId=ghen4268&logNo=220215715923

반응형
Comments