본문 바로가기

Programming/PHP

외부 SMTP를 이용해서 메일 보내기 - 1(feat. PHPMailer)

728x90

홈페이지에 폼메일을 붙일 경우 항상 생각해야 하는 게 메일 발송입니다. 단순히 관리자 페이지에 쌓이기만 하면 괜찮은데 클라이언트들은 메일로 받는 걸 더 원합니다.

php 내장 함수인 mail() 함수를 쓰면 되는데 지메일 같은 경우는 메일 자체가 아예 오질 않습니다. 뭐 그만큼 스팸 관련해서 더 빡빡해졌다는 의미겠지요. 그래서 php 외부 라이브러리인 PHPMailer를 연동하는 방법을 알아보겠습니다. 그 전에 우선 설정을 몇 가지 해야 하니 아래 내용 참고하시면 되겠습니다.

제목대로 외부 SMTP를 이용하니 smtp를 지원하는 메일 계정을 구하셔야 하는데 구글, 네이버, 다음 등이 있습니다.

- 네이버

우선 네이버 메일에 로그인 하신 후 좌측 하단에 있는 환경설정을 클릭합니다(아래 이미지).

환경설정 페이지에서 POP3/IMAP 설정을 클릭한 후 사용함으로 체크합니다.

계정 정보는 보고 있는 페이지 하단에 나옵니다.

Host : smtp.naver.com

Port : 465(SSL 필요)

ID : 자신의 네이버 아이디

Password : 자신의 네이버 패스워드

 

그런데 만약 자신의 2단계 인증을 사용하고 있다면 Password가 네이버 로그인 때 사용하는 게 아니라 애플리케이션 비밀번호라는 게 있는데 그걸 사용하셔야 합니다. 아래 참고하세요.

네이버 메인에서 네이버ID라고 된 부분을 클릭하신 후 계정 설정 페이지로 이동합니다.

보안설정 부분에 2단계 인증 관리 버튼을 클릭합니다.

종류 아무 거나 선택하시고 생성하기 버튼을 클릭만 하면 됩니다. 그러면 아래 칸에 비밀번호가 나오니 그거 그대로 복사해서 사용하시면 됩니다.

 

- 구글(지메일)

지메일 smtp로 검색을 해보면 나오는 것 중 상당수가 보안 수준이 낮은 앱의 액세스 허용인데 이건 구글에서 2022년 5월에 정책 변경으로 막아버렸습니다. 아마 예전에 google suite(무료였고 지금은 유료인 workspace) 서비스에 가입했던 계정이 있고 현재까지도 업그레이드를 하지 않았다면 보안 수준이 낮은 앱의 액세스 허용 메뉴가 있을 수도 있습니다. 어차피 workspace로 다 전환 중이기 때문에 메뉴가 있어도 큰 의미는 없습니다.

우선 구글 로그인을 하신 후 화면 우측 상단에 자신의 아이콘을 클릭하신 후 Google 계정 관리라는 버튼을 클릭하시면 됩니다. 아니면 여기를 클릭하셔서 바로 이동을...

계정 페이지로 들어가서 좌측 메뉴 중에 보안 메뉴를 클릭합니다.

아직 2단계 인증을 설정하지 않은 계정이기에 위처럼 나옵니다. 여기에서 2단계 인증을 클릭하면 됩니다.

시작하기 버튼 클릭

자신의 번호를 입력하고 다음

문자 메시지로 여섯 자리 코드가 옵니다. 아래 칸에 입력 후 다음

2단계 인증을 사용하겠냐고 묻는데 사용 클릭!

사용을 클릭하면 아래처럼 나옵니다.

이제 다시 처음으로 돌아가서 보안 메뉴로 갑니다. 그러면 아래처럼 2단계 인증은 사용으로 나오고 앱 비밀번호만 없음으로 나옵니다. 여기에서 앱 비밀번호 메뉴(우측 >)를 클릭합니다.

앱 비밀번호를 클릭하면 비밀번호 입력하는 창이 한 번 뜹니다. 거기서 로그인을 다시 입력하면 앱 선택, 기기 선택 이런 게 나오는데 아무 거나 해도 상관 없으니 그냥 선택하시면 됩니다. 그러면 아래와 같은 화면이 뜹니다. 노란색 부분에 16자리 비밀번호가 보이시죠? 노출되어도 상관 없습니다. 테스트로 생성하고 삭제했으니까요.

Host : smtp.google.com

Port : 465(SSL 필요)

ID : 자신의 지메일 계정

Password : 위 이미지에 보이는 앱 비밀번호

 

이렇게만 하면 우선 하나의 준비는 끝이 났습니다. 이제 PHPMailer 라이브러리를 다운로드 받아서 설치만 하면 됩니다. 이건 다음 시간에...

반응형

Comments