diff --git a/deploys/ops-manual/03-service-prod.md b/deploys/ops-manual/03-service-prod.md index c6a72c0..965cebc 100644 --- a/deploys/ops-manual/03-service-prod.md +++ b/deploys/ops-manual/03-service-prod.md @@ -336,4 +336,46 @@ fc-list | grep -i "폰트이름" ``` > **주의:** 개발서버에 폰트를 추가하면 운영서버에도 동일하게 설치해야 변환 결과가 일치한다. -``` \ No newline at end of file + +--- + +## SMTP (메일 발송) + +Gmail SMTP를 통해 메일 발송. Google 앱 비밀번호 사용 (2단계 인증 필요). + +**프로젝트별 SMTP 설정:** + +| 항목 | api | mng | +|------|-----|-----| +| MAIL_HOST | smtp.gmail.com | smtp.gmail.com | +| MAIL_PORT | 587 | 587 | +| MAIL_USERNAME | shine1324@gmail.com | admin@codebridge-x.com | +| MAIL_FROM_ADDRESS | shine1324@gmail.com | develop@codebridge-x.com | +| MAIL_FROM_NAME | ${APP_NAME} | (주)코드브릿지엑스 | +| MAIL_ENCRYPTION | tls | tls | + +> **주의:** 개발/운영 서버의 MAIL_PASSWORD(앱 비밀번호)는 반드시 동일하게 유지. +> Google 앱 비밀번호를 재발급하면 모든 서버에 동일하게 반영해야 한다. + +**설정 파일 위치:** + +| 프로젝트 | 운영 | 개발 | +|---------|------|------| +| api | `/home/webservice/api/shared/.env` | `/home/webservice/api/.env` | +| mng | `/home/webservice/mng/shared/.env` | `/home/webservice/mng/.env` | + +**변경 후 반영:** + +```bash +# api +cd /home/webservice/api/current && php artisan config:cache + +# mng +cd /home/webservice/mng/current && php artisan config:cache +``` + +**트러블슈팅:** + +- `535 Username and Password not accepted` → 앱 비밀번호 만료 또는 불일치. 개발서버 값과 비교 후 동기화 +- `Connection refused` → 방화벽에서 587 포트 아웃바운드 차단 여부 확인 +- Google 앱 비밀번호 발급: Google 계정 → 보안 → 2단계 인증 → 앱 비밀번호 \ No newline at end of file