Gmail_SMTP 를 이용하여 메일보내기 > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

Gmail_SMTP 를 이용하여 메일보내기 정보

Gmail_SMTP 를 이용하여 메일보내기

첨부파일

gmail.smtp.tar.gz (212.4K) 314회 다운로드 2022-06-08 09:49:37
테스트한 버전5.4.4.8
호환 가능 버전5.4.4.8 이상

본문

이 플러그인은 Google의 Gmail SMTP 서버를 이용하여 메일을 보내는 플러그인 입니다.

 

아래 내용을 참고하여 메일설정을 할수 있습니다.

 

목차

 

1. 메일보내기의 문제점

2. 이 플러그인의 적용방법과 요구환경과 기능

   1) Gmail SMTP 로 메일보내기

   2) Google OAUTH 로 메일보내기

   3) 보내는 메일주소 변경하기

 

 

1. 메일보내기의 문제점

 

10년 전만 하더라도 메일을 보내는데 거의 문제가 없었는데, 몇년 전부터 각 포털사마다 메일정책이 크게 강화가 되어서 몇년 전부터 메일을 쉽게 보낼수 없었습니다.

메일정책이 까다로운 순서를 따지자면 구글 > 다음, 네이트 > 네이버 순으로, 구글이 메일정책이 제일 까다롭고 네이버가 그나마 덜 까다롭습니다.

 

구글의 메일 정책을 보면은 ( 아래링크 )

https://support.google.com/mail/answer/81126?hl=ko

 

이 조건을 충족하려면

 

1) 메일서버 아이피가 블랙리스트(RBL)에 등록되어 있는지 체크해야 합니다.

2) 도메인을 가리키는 IP 주소에 유효한 역방향 DNS 레코드를 설정 ( 사용환경마다 다르며 따로 알아보고 기관에 신청하고, 승인 받는데 몇일 걸릴수 있음. )

3) From: 헤더에 동일한 이메일 주소를 사용

4) 도메인에 SPF 레코드를 게시 ( White Domain 신청을 뜻하며, KISA에 신청하고 몇일 걸릴수 있음 )

5) 메일에 DKIM 서명을 사용 설정

6) 도메인에 DMARC 레코드를 게시

 

위의 조건을 충족해야 지메일로 받을수 있습니다. ( 다 지킬 필요는 없고, 몇가지만 지켜도 될 수 있습니다. )

 

웹호스팅을 사용하는 경우 하나의 서버를 여러명이 공유를 하니, 한 사람의 잘못으로 그 서버가 블랙리스트에 등록이 되면 다수가 메일을 보내지 못하는 경우도 종종 있기도 합니다.

 

 

2. 이 플러그인의 적용방법과 요구환경과 기능

 

Gmail SMTP 서버를 이용하여 메일을 보내게 되면, 위의 제약조건에서 자유로워 질수 있습니다.


이 플러그인의 요구환경은 그누보드 5.4.4.8 버전 이상에서만 동작되며,

PHP 버전 요구는 1번 Gmail SMTP 로 메일보내기 는 PHP 5.4 버전이상에서만 되며,

2번 Google OAUTH 로 메일보내기는 PHP 7.2 버전 이상을 요구합니다.

 

적용방법은 첨부파일을 그누보드의 설치 경로에 덮어쓰기 하면 됩니다.

 

1) Gmail SMTP 로 메일보내기

 

3717582117_1614322128.5133.png

 

관리자 -> 설정 -> Gmail SMTP 설정에서 

 

Gmail SMTP 를 설정할 이메일주소

메일발송이름

보내는 메일주소

SMTP 전송 타입

SMTP Port

구글 앱 비밀번호

 

를 입력합니다.

 

구글 앱 비밀번호는 아래 링크에서

https://myaccount.google.com/security

 

3717582117_1614322143.7635.png

 

2단계 인증 후에 앱 비밀번호를 발급받습니다. ( 앱 비밀번호는 16자리입니다. )

발급받은 16자리를 입력해 주시면 됩니다.

 

다 설정했다면 관리자 -> 설정 -> 메일테스트에서 메일 보내기를 테스트해 보세요.

메일테스트에서만 디버그 메시지가 뜨며, 다른 메일 보내기에서는 디버그 메시지가 뜨지 않습니다.

디버그 메시지를 통해 메일이 성공된건지, 실패한건지를 알수 있습니다.

 

2) Google OAUTH 로 메일보내기

 

3717582117_1614327611.9087.png

 

Gmail SMTP 를 설정할 이메일주소

메일발송이름

보내는 메일주소

SMTP 전송 타입

SMTP Port

클라이언트 ID

클라이언트 보안 비밀

 

등의 입력이 필요합니다.

 

구글 개발자 API 콘솔에서 

https://console.developers.google.com/

 

프로젝트가 없다면 프로젝트 생성 후에

 

3717582117_1614322165.9298.png

 

동의 화면 구성을 한 후에

 

3717582117_1614322184.6426.png

 

3717582117_1614322194.6524.png

 

 

3717582117_1614322225.6541.png

 

자신의 홈페이지 설정에 맞게 앱 정보를 입력합니다.

 

그 후 테스트 사용자는 + ADD USERS 버튼을 눌러 자신의 gmail 주소를 입력합니다.

 

테스트 사용자에서 자신의 gmail 주소를 입력하지 않으면 oauth 로 메일을 보낼수 없습니다.

 

3717582117_1614322282.8436.png

 

 

그런 다음 사용자 인증 정보에서 + 사용자 인증정보 만들기 -> OAuth 클라이언트 ID 만듭니다.

 

애플리케이션 유형은 웹 애플리케이션 선택

이름은 마음대로

 

승인된 자바스크립트 원본의 URl 은 자신의 사이트 도메인

승인된 리디렉션 URl 은 자신의 사이트에 나온 텍스트를 복사해서 붙여넣기 합니다.

 

3717582117_1614322313.0665.png

 

3717582117_1614322332.271.png

 

3717582117_1614322337.5869.png

 

 

 

위의 만들기를 누르면 클라이언트 ID 와 클라이언트 보안 비밀 을 확인할수 있습니다.

이것을 복사하여 자신의 홈페이지 Gmail SMTP 설정에 입력합니다.

 

3717582117_1614322461.5885.png

 

3717582117_1614322486.2689.png

 

다 입력하고 저장하면 위의 이미지 같이

 

구글 계정이 연결되지 않았거나 Refresh_token이 만료되었습니다. 위의 구글 계정와 oauth 로 연결하기 실행이 필요합니다.

 

라는 메시지가 뜹니다. 이 메시지가 뜬다면 그 아래의 버튼 구글 계정와 oauth로 연결하기 버튼을 눌러 인증 과정을 해야 합니다.

 

승인 받지 않는 상태에서는 아래와 같이 확인하지 않은 앱이라고 뜹니다. 계속 버튼을 눌러서 계속 진행합니다.

 

3717582117_1614322505.6216.png

3717582117_1614322519.0524.png

 

 

위의 과정을 다 마쳤다면, 구글 계정이 정상적으로 연결된 상태입니다. 라고 표시 됩니다.

 

3717582117_1614322543.424.png

 

다 설정했다면 관리자 -> 설정 -> 메일테스트에서 메일 보내기를 테스트해 보세요.

메일테스트에서만 디버그 메시지가 뜨며, 다른 메일 보내기에서는 디버그 메시지가 뜨지 않습니다.

디버그 메시지를 통해 메일이 성공된건지, 실패한건지를 알수 있습니다.

 

 

3) 보내는 메일주소 변경하기

 

위의 과정으로 메일이 정상적으로 보내진다면,

보내는 사람 메일주소를 지메일주소가 아닌 개인이메일 주소 또는 회사 이메일로 변경할수 있습니다.

 

( 아래 과정의 다른 주소에서 메일 보내기 를 하지 않으면, 항상 메일 보낸 사람이 보내는 메일주소가 아닌 지메일 주소로 나오게 됩니다. )

 

지메일 설정 에서 

Gmail > 설정 > 계정 및 가져오기 > 다른 주소에서 메일 보내기 에서 등록된 이메일 주소만 가능합니다.

 

3717582117_1614325380.7711.png

 

 

3717582117_1614323817.3611.png

 

3717582117_1614323823.8864.png

 

3717582117_1614323832.8876.png

 

3717582117_1614323838.2341.png

 

 

추천
30

댓글 전체

감사합니다 잘 됩니다. 마지막 다른메일도 해보고 싶었는데 포트문제인지...아쉽긴하네요
ㅎㅎ 너무 좋은 자료 공개해주셔서 감사합니다.
우선 자료 감사합니다!!


OAUTH 로 연결했는데

Fatal error: Uncaught Exception: User profile request failed! Google returned an error: The Authorization Service has return: in /www/wwwroot/xn/plugin/social/Hybrid/Auth.php:169 Stack trace: #0 /www/wwwroot/xn/plugin/social/Hybrid/Auth.php(55): Hybrid_Auth::initialize(Array) #1 /www/wwwroot/xn/plugin/gmail_smtp/popup.php(36): Hybrid_Auth->__construct(Array) #2 {main} thrown in /www/wwwroot/xn/plugin/social/Hybrid/Auth.php on line 169

이러고 뜹니다..

첫번째 방법도 시도해봤는데.. 그냥 홈페이지가 작동을 멈춰버리네요.
curl 또는 php curl 이 설치되어 있는지 또는 잘 작동이 하는지 점검이 필요합니다.

자세한 원인은 PHP 에러로그 파일을 확인해 봐야 알수 있습니다.
안녕하세요 디스건님
메일보내기 잘 사용되다가 최근 메일이 안와서 메일보내기 테스트 해보니

Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /home/ubuntu/public_html/plugin/gmail_smtp/guzzlehttp/guzzle/src/Client.php on line 203

이런 에러가 뜨면서 메일이 안보내집니다. ㅠㅠ
어떻게 해결해야할까요?
아 넵 ㅠ

말씀하신 내용의 오류는 php 7.2 버전 이하일 경우 뜨는 오류메시지입니다.

일단 제가 오늘 날짜 22년 6월 7일로 다시 코드를 수정해서 올려놓았으니 한번 다시 적용해보세요~ 잘 될지는 장담 할수 없습니다;;

구글정책도 예전하고 틀려진 부분이 있어서 테스트 하는 부분도 어렵네요 ㅠ
감사합니다

그런데 새로운파일로 업로드했더니 아래와 같은 에러를 더 많이 뿜어내네요 ㅜㅜ
---
Fatal error: Uncaught Error: Undefined class constant 'ENCRYPTION_SMTPS' in /home/ubuntu/public_html/plugin/gmail_smtp/gmail_smtp.class.php:219 Stack trace: #0 /home/ubuntu/public_html/lib/Hook/hook.extends.class.php(26): GMAIL_SMTP_GNU5->gmail_smtp_mailer('\xEA\xB7\xB8\xEB\x88\x84\xEB\xB3\xB4\xEB\x93\x9C5', '*** 개인정보보호를 위한 이메일주소 노출방지 ***...', '[\xEB\xA9\x94\xEC\x9D\xBC\xEA\xB2\x80\xEC\x82\xAC] ...', '<span style="fo...', 1, '', '', '') #4 /home/ubuntu/public_html/adm/sendmail_test.php(26): mailer('\xEA\xB7\xB8\xEB\x88\x84\xEB\xB3\xB4\xEB\x93\x9C5', 'todl78@n in /home/ubuntu/public_html/plugin/gmail_smtp/gmail_smtp.class.php on line 219
--------

thisgun님 말씀처럼 php버전이 7.0 사용중이엇는데

php버전을 7.2로 업데이트 하니 잘 작동됩니다.

감사합니다~~

참고로 이번에 올려준파일은 php7.2에서도 위와 똑같이 에러가 발생됩니다. ㅠㅠ



요약하자면

1) 기존파일 :
- php7.0 : 최근에 작동안됨
- php7.2 : 작동됨

2) 이번에 올려준파일 :
- php7.0 : 작동안됨
- php7.2 : 작동안됨
아닙니다. 죄송하다니요, ㅠㅠ
오히려 저는 디스건님 덕분에 잘 사용해서 감사할 따름입니다.
다시 다운로드 받은 파일은 잘 작동합니다.
감사합니다.
전체 503
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT