Ghost 에서 Google SMTP로 이메일 발송 설정하기
Ghost CMS에서 Google의 SMTP 서버를 활용해 안정적인 이메일 발송 시스템을 구축하는 방법을 단계별로 알아보세요. 뉴스레터, 회원가입 알림, 비밀번호 재설정 등 모든 이메일 기능을 Google SMTP로 완벽하게 설정할 수 있습니다.

Ghost CMS를 운영하면서 가장 중요한 설정 중 하나가 바로 이메일 발송 시스템입니다. 뉴스레터 발송, 회원가입 확인, 비밀번호 재설정 등 다양한 기능이 이메일에 의존하기 때문입니다. 이번 글에서는 Google의 SMTP 서버를 활용해 Ghost CMS의 이메일 시스템을 안정적으로 구축하는 방법을 알아보겠습니다.
Google SMTP를 선택해야 하는 이유
Google SMTP는 높은 전송률과 안정성으로 유명합니다. 특히 개인 블로그나 소규모 사이트를 운영하는 경우, 별도의 이메일 서비스 비용 없이도 안정적인 이메일 발송이 가능합니다.
주요 장점:
- 99.9% 가동률 보장
- 스팸 필터링 우수
- 무료로 하루 500통까지 발송 가능
- 강력한 보안 시스템
사전 준비사항
Google SMTP 설정 전에 다음 사항들을 준비해야 합니다:
- Gmail 계정 (또는 Google Workspace 계정)
- 2단계 인증 활성화
- 앱 비밀번호 생성
- Ghost CMS 관리자 권한
Gmail 앱 비밀번호 생성하기
1단계: 2단계 인증 활성화
먼저 Gmail 계정에서 2단계 인증을 활성화해야 합니다:
- Google 계정 설정 페이지로 이동
- '보안' 탭 선택
- '2단계 인증' 활성화
- 휴대폰 인증 또는 인증 앱 설정
2단계: 앱 비밀번호 생성
2단계 인증이 활성화되면 앱 비밀번호를 생성할 수 있습니다:
- Google 계정 → 보안 → 앱 비밀번호
- '앱 선택' → '기타(맞춤 이름)'
- 'Ghost CMS' 등으로 이름 설정
- 생성된 16자리 비밀번호 복사 및 보관
중요: 이 비밀번호는 한 번만 표시되므로 안전한 곳에 저장하세요.
Ghost CMS SMTP 설정
config.production.json 수정
Ghost CMS의 설정 파일을 수정해 Google SMTP를 연결합니다:
{
"mail": {
"transport": "SMTP",
"options": {
"service": "Gmail",
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"auth": {
"user": "your-email@gmail.com",
"pass": "your-app-password"
}
}
}
}
설정값 상세 설명
- service: "Gmail" 고정값
- host: "smtp.gmail.com"
- port: 587 (TLS) 또는 465 (SSL)
- secure: port 587 사용시 false, 465 사용시 true
- user: Gmail 주소
- pass: 앞서 생성한 앱 비밀번호
환경변수 방식 설정 (권장)
보안을 위해 환경변수로 설정하는 것을 권장합니다:
# .env 파일
MAIL_TRANSPORT=SMTP
MAIL_SERVICE=Gmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_SECURE=false
MAIL_USER=your-email@gmail.com
MAIL_PASS=your-app-password
{
"mail": {
"transport": "SMTP",
"options": {
"service": "Gmail",
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"auth": {
"user": process.env.MAIL_USER,
"pass": process.env.MAIL_PASS
}
}
}
}
Ghost 재시작 및 테스트
1. Ghost 재시작
설정 변경 후 Ghost를 재시작해야 합니다:
# PM2 사용시
pm2 restart ghost
# 직접 실행시
ghost restart
2. 이메일 발송 테스트
Ghost 관리자 페이지에서 테스트 이메일을 발송해봅니다:
- Ghost 관리자 → Settings → Labs
- 'Send test email' 클릭
- 테스트 이메일 주소 입력
- 발송 확인
일반적인 문제 해결
인증 오류 (Authentication Failed)
가장 흔한 문제입니다. 다음을 확인하세요:
- 앱 비밀번호가 정확한지 확인
- Gmail 계정의 2단계 인증 활성화 여부
- 'Less secure app access' 설정 (필요시)
연결 시간 초과 (Connection Timeout)
네트워크나 방화벽 문제일 수 있습니다:
- 서버의 아웃바운드 587, 465 포트 확인
- DNS 설정 확인
- 방화벽 규칙 점검
발송 제한 도달
Google SMTP는 일일 발송 제한이 있습니다:
- Gmail: 500통/일
- Google Workspace: 2,000통/일
- 제한 초과시 24시간 대기 필요
추가 최적화 팁
1. 발신자 정보 설정
Ghost 설정에서 발신자 정보를 명확히 설정하세요:
{
"mail": {
"from": "noreply@yourdomain.com",
"transport": "SMTP",
"options": {
// SMTP 설정...
}
}
}
2. 이메일 템플릿 커스터마이징
Ghost의 이메일 템플릿을 커스터마이징하여 브랜딩을 강화할 수 있습니다:
/content/themes/your-theme/partials/email/
폴더 활용- HTML 템플릿 수정으로 디자인 개선
3. 모니터링 설정
이메일 발송 상태를 모니터링하는 것이 중요합니다:
- Ghost 로그 정기 확인
- 이메일 발송 실패 알림 설정
- 발송량 추적 및 관리
대안 서비스 고려사항
Google SMTP 외에도 다음 서비스들을 고려할 수 있습니다:
유료 서비스:
- SendGrid: 전문 이메일 발송 서비스
- Mailgun: 개발자 친화적 API
- Amazon SES: AWS 생태계 통합
언제 대안을 고려해야 할까:
- 일일 500통 제한 초과시
- 더 정교한 분석이 필요할 때
- 대량 마케팅 이메일 발송시