[Ghost] Mail발송용으로 Mailgun 대신 Gmail을 사용하기

배경

  • Ghost 5.9버전 이후 현재 Mail 발송이 되지 않는다.
Ghost is currently unable to send email. See http://support.ghost.org/mail for instructions.
  • 이로 인해서, 멤버십 관련 가입을 위한 Magic Link라든가, News Letter 등 모든 부분이 Working하지 않는다.
  • 특히 Ghost 5.9 버전 이후부터는 Comment 기능이 추가되었는데, 이 역시 가입이 제대로 되지 않기 때문에 Mail 부분을 별도로 Setting을 해줘야 한다.
  • 현재 Mailgun, SendGrid, Amazon SES,  Gmail 정도를 소개해주고 있는데, Gmail을 제외하고는 모두 무료이다.
  • 물론 Transactional Mail이 아닌 Bulk Mail(News Letter)등을 위해서는 Gmail외에 다른 Solution을 써야 하지만, 현 시점에는 News Letter를 쓰고 있지 않기 떄문에 GMail로 Mail을 Setting을 하였다.

환경

  • Ghost Version: 5.10.1
  • Self-hosted Environment: Docker on Ubuntu 20.04 LTS

방법

  • 우선 Ghost를 위한 앱 비밀번호를 생성해줘야 한다.
  • 이를 위해서 구글 계정에 접속을 한후 좌측에서 보안을 클릭한다.
  • 그리고 Google에 로그인에서 앱 비밀번호를 눌러서 Ghost를 위한 앱 비밀번호를 생성한다.
  • 그리고 그 비밀번호를 Ghost 내에 "config.production.json"에 설정을 해줘야 한다.
  • Docker를 사용한다면, "docker exec -it Container_name /bin/bash"로 Ghost Docker에 직접 접속해보면 바로 확인할 수 있다.
  • 다음과 같이 수정해주면 된다.
  "mail": {

       "from": "'FirstName LastName' <gmail@gmail.com>",
       "transport": "SMTP",
       "options": {
         "service": "Google",
         "host": "smtp.gmail.com",
         "port": "465",
         "secure": true,
         "auth": {
           "user": "gmail@gmail.com",
           "pass": "AppPassword"
         }
       }

},
  • 그리고 나서 Ghost를 재시작해준다