From dc8b3ae0c9b44395db5d3808055ac7e65b575514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Wed, 25 Feb 2026 13:41:18 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=9A=B4=EC=98=81=EC=84=9C=EB=B2=84=20?= =?UTF-8?q?SMTP=20=EB=A9=94=EC=9D=BC=20=EC=84=A4=EC=A0=95=20=EA=B0=80?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - api/mng 프로젝트별 SMTP 설정 정보 - Google 앱 비밀번호 관리 주의사항 - 트러블슈팅 가이드 (535 인증 실패 등) Co-Authored-By: Claude Opus 4.6 --- deploys/ops-manual/03-service-prod.md | 44 ++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) 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