콘텐츠로 건너뛰기

GCP WordPress에서 댓글 알림 메일 보내기

 메일이 안보내진다!

아무도 안볼 줄 알았는데... 의외로 검색어에 블로그가종종 노출되는 것 같다. 매우 적긴 하지만 방문하는 사람들이 있고, 댓글을 남겨 주신 분들도 계시다. 그런데 이상하게도 포스트에 댓글이 달렸는데 메일이 오지 않은 탓에 며칠이 지나고 나서야 댓글을 확인할 수 있었다.

분명히 누군가가 포스트에 댓글을 남기면 바로 메일이 오도록 해놨는데? 맞다. WordPress에는 설정을 해 두었다. 그럼 뭐하나... 서버에서 막는데...! 혹시나 해서 찾아보니 WordPress에서 메일을 보내면 WordPress의 wp_mail() 함수 또는 PHP의 mail() 함수가 port 25를 통해 메일을 보내게 되는데 GCP의 compute engine에서는 보안상의 이유로 port 25가 차단되어 있다고 한다(GCP 문서 / stack overflow). 그럼 port를 바꾸면 되지 않을까?

찾아보니 같은 문제를 겪고 있는 사람들이 많고, 해결 방법도 여러 가지가 있는 것 같다. 나는 아래 포스트를 참고해 Gmail SMTP를 이용해 해결했다.

 

Gmail SMTP를 이용해 메일 보내기

  1.  먼저 WP Mail SMTP by WPForms 플러그인을 설치, 활성화 한다.
  2.  WP Mail SMTP 설정 창에서 From Email, From Name을 작성하고 각각 바로 아래의 체크박스를 체크해 준다. 사실 Gmail에 연결하면 해당 계정에서 메일을 보내게 되기 때문에 From Email란은 크게 의미가 있는 것 같지는 않다.
    From Email 바로 밑에 있는 문구 (If you using an email provider ...) 를 읽었지만 그래도 혹시나 하고 저렇게 메일 주소를 입력해 봤는데, 별 소용 없었다. Gmail에 연결하는 것이니 생각해보면 당연한 결과이긴 하다.
  3. MailerGmail을 선택해주고, Set the return-path to match the From Email을 체크해 준다.
    조금 아래로 스크롤을 내리면 있는 Authorized Redirected URI는 미리 메모장에 복사해 주자.
  4. WP Mail SMTP 설정 창은 잠시 두고, Gmail API 콘솔로 이동한다. 연결할 Gmail계정에 미리 로그인되어 있어야 한다. 아래 그림처럼 드롭다운 목록에 기본으로 설정되어 있는 프로젝트 만들기를 그대로 두고 [계속]을 클릭한다.
  5. API가 설정되었다! 아래쪽의 [사용자 인증 정보로 이동]을 클릭한다. 이때 OAuth 동의 화면을 설정해야 한다고 안내가 뜬다. [동의 화면 설정] / [외부]  선택 및 [만들기] 순으로 각각 진행한 뒤에 뜨는 창에 적절히 정보를 입력해 주자. 어차피 외부 공개용 앱을 만드는 것이 아니기 때문에 크게 중요한 과정은 아닌 것 같다.

    사용자 인증 정보로 이동을 클릭하면 아래와 같이 OAuth 동의 설정 창이 열린다.

    NOT NOW를 선택하고 넘어갈 수도 있는데, 어차피 다음 단계 진행하다가 막힌다.

    '외부'만 선택 가능하다.

  6. 다시 사용자 인증 정보로 추가 창으로 돌아와서, 아래와 같이 작성한 뒤 [어떤 사용자 인증 정보가 필요한가요?]를 클릭한다.
    - 어떤 API를 사용 중이신가요? > Gmail API
    - API를 호출할 위치가 어디인가요? > 웹 서버(예: node.js, Tomcat)
    - 액세스할 데이터는 무엇인가요? > 사용자 데이터
  7. OAuth 설정 창이 뜬다.  Oauth는 Open Authentication의 약자로, 곧 연결할 Gmail 계정에서 인증된 메일을 발송할 수 있는 권한을 부여해 준다고 한다.
    아래 내용들을 입력한 뒤 아래의 [새로고침] 또는 [Client ID 생성]을 클릭한다.
    - 이름: 적당히 마음에 드는 이름을 만들어 주자.
    - 승인된 자바스크립트 원본: 블로그 주소를 입력해 준다.
    - 승인된 리디렉션 URI: 조금 전에 복사해 뒀던 Authorized Redirected URI를 입력한다.
    뒤이어 나오는 창도 적당히 클릭해서 끝내면...
  8. 아래와 같이 사용자 인증 정보 창이 뜬다. 조금 전에 생성한  Oauth 2.0 클라이언트 오른쪽의 편집 버튼을 누르면 화면 오른쪽에서 클라이언트 ID클라이언트 보안 비밀을 확인할 수 있다. 메모장에 복사해 두자.
  9. 다시 WP Mail SMTP 설정 창으로 돌아와서, 아래쪽의 Client IDClient Secret 란에 조금 전에 복사해 둔 값들을 입력하고 [Save Settings]를 클릭한다.
  10. Authorize 섹션에 Allow plugin to send email using your Google account 버튼이 활성되된다. 클릭하고 안내되는 페이지에서 구글 로그인 및 권한 부여를 진행해 준다.
  11. 메일 설정이 끝났다! [Email Test] 메뉴에서 테스트 메일도 보내 보고, 아무 포스트에 댓글을 하나 달아서 메일이 보내지는지 확인하자.

 

사실 원하는 것은 Gmail을 경유하는 것이 아니라 서버에서 바로 메일을 보내는 것이긴 한데([email protected]), 일단은 이 정도로 만족해야겠다.

덧. 검색하다 보니 재미있는 글들이 보인다 ( GCP uservoice #1 / #2). 원래는 465, 587 포트도 모두 막혀 있다가 비교적 최근에 third party service에 개방이 된 듯하다.

Share this post!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.