Gnuboard5 Second Edition
그누보드5 SE └ SMTP 메일 발송 매뉴얼
문서
부모 매뉴얼: 설정 관리 (
/admin/setting) →smtp그룹
g5se 가 메일을 보낼 때 PHP 의 mail() 함수 대신 외부 SMTP 서버 (Gmail / Naver / 자체 SMTP 등) 를 사용하도록 설정한다.
host 필드를 비워두면 자동으로 PHP mail() 폴백 — SMTP 설정 없이도 동작은 하지만, 발송 실패율과 스팸 처리가 SMTP 보다 훨씬 나쁘다. 운영 사이트는 거의 항상 SMTP 사용 권장.
1. 폼 진입
- super-admin 로그인
- /admin/setting → 목록에서 SMTP 메일 발송 카드의 [편집]
- 필드 6 개 입력 → [저장]
2. 필드 설명
| 필드 | 타입 | 의미 |
|---|---|---|
| SMTP 호스트 | text | 예: smtp.gmail.com. 비우면 PHP mail() 폴백. |
| 포트 | number | SSL=465 / TLS=587 / plain=25. 가장 자주 쓰는 값은 587. |
| 암호화 | select | 없음 / TLS / SSL/SMTPS. 포트와 일치해야 함 (587→TLS, 465→SSL). |
| 인증 사용 | bool | Gmail / Naver 등 외부 SMTP 는 거의 필수 체크. |
| 계정 | text | 전체 이메일 또는 SMTP 계정 ID. |
| 비밀번호 | password | 앱 비밀번호 사용 (일반 로그인 비번 ❌). 빈 값 저장 시 기존 유지. |
3. Gmail 설정
| 필드 | 값 |
|---|---|
| host | smtp.gmail.com |
| port | 587 (TLS 권장) 또는 465 (SSL) |
| 암호화 | port 587 → TLS, port 465 → SSL/SMTPS |
| 인증 사용 | ✅ 반드시 체크 |
| 계정 | 전체 이메일 ([email protected]) |
| 비밀번호 | 앱 비밀번호 16자 |
앱 비밀번호 만들기
- myaccount.google.com/apppasswords 접속
- 2단계 인증이 꺼져있으면 먼저 활성화 (앱 비밀번호 발급 전제 조건)
- 앱 이름 입력 (예:
g5se) → 만들기 - 표시된 16자 코드 그대로 폼의 비밀번호 필드에 붙여넣기 (공백 포함해도 됨 — Google 이 무시함)
일반 Gmail 로그인 비밀번호는 더 이상 SMTP 인증에 안 받는다.
4. Naver 설정
| 필드 | 값 |
|---|---|
| host | smtp.naver.com |
| port | 587 (TLS) 또는 465 (SSL) |
| 암호화 | port 587 → TLS, port 465 → SSL/SMTPS |
| 인증 사용 | ✅ 반드시 체크 |
| 계정 | 전체 이메일 ([email protected]) 또는 네이버 ID (me) — 둘 중 안 되는 쪽 시도 |
| 비밀번호 | 애플리케이션 비밀번호 12자 |
애플리케이션 비밀번호 만들기
- mail.naver.com 환경설정 → POP3/IMAP 설정 → "IMAP/SMTP 설정" 또는 "POP3/SMTP 설정" 탭 → 사용함 선택
- 같은 페이지 안내 박스의 [설정하기] 버튼 → 네이버 ID 보안설정으로 이동
- 2단계 인증 활성화 (이미 켜있으면 건너뜀)
- 애플리케이션 비밀번호 생성 — 종류 "직접 입력" + 식별 이름 (예:
g5se) → [생성하기] - 표시된 12자 비번 메모 (창 닫으면 다시 못 봄)
- POP3/IMAP 설정 페이지로 돌아가서 [저장]
- 위 12자 비번을 g5se 폼의 비밀번호 필드에 붙여넣기
네이버 일반 로그인 비번도 SMTP 에 안 받음. 인증 실패가 누적되면 일시 차단 (10~30분 대기) 됨.
5. 다른 SMTP 서버 (Outlook / 자체 호스팅 / 회사 SMTP)
| host 예 | port | 암호화 |
|---|---|---|
smtp.office365.com |
587 | TLS |
smtp.mail.me.com (iCloud) |
587 | TLS |
| 회사 자체 SMTP | 운영 정책에 따라 | 운영 정책에 따라 |
대부분 패턴은 동일 — 인증 사용 ✅ + 계정 + 비밀번호. 자체 서버라면 운영자에게 정확한 값을 받는다.
6. 동작 확인
- 폼 저장 → "SMTP 메일 발송 설정이 저장되었습니다." toast
- 가입 인증 메일 / 비밀번호 찾기 /
mailer.lib.php의존 기능을 트리거 (예: 회원가입 메일 인증) - 받은 메일이 정상 도착하면 OK
- 도착 안 함 → 사이트 로그 / 메일 서버 로그 확인 (
data/log/등)
7. 문제 해결
| 증상 | 원인 / 해결 |
|---|---|
SMTP connect() failed |
host / port 오타. port 와 암호화 불일치 (587 + SSL = ❌, 587 + TLS = ✅) |
Authentication failed |
일반 로그인 비번 사용 — 앱/애플리케이션 비번으로 교체 |
STARTTLS required |
암호화 "없음" 선택됨 — TLS 로 변경 |
| 메일이 스팸함으로 감 | SMTP 의 SPF/DKIM 설정 확인. Gmail / Naver 표준 발송도 사이트 도메인이 다르면 스팸 처리 가능 — 발신 이메일 도메인 정렬 |
| Naver 만 인증 실패 누적 | 10~30분 대기 후 재시도 — 잘못된 비번 누적 시 일시 차단 |
| 일반 로그인 비번 / 앱 비번 구분 모름 | Gmail = 16자 / Naver = 12자 — 보통 앱 비번. 일반 로그인 비번은 SMTP 거부 |
| 가끔 발송 실패 (간헐적) | port 25 사용 중인지 확인. 호스팅이 port 25 outbound 차단하는 경우 많음 — port 587 (TLS) 또는 465 (SSL) 로 변경 |
8. host 비우면?
PHP mail() 함수로 폴백. 서버 환경 (Postfix / Sendmail 등) 이 갖춰져 있고 도메인 SPF 가 정렬되어 있으면 일단 발송은 됨 — 단:
- 발신 도메인이 사이트 도메인과 다르면 대부분의 메일 서비스가 스팸으로 분류
- 발송 추적 불가
- 발송 실패 silent
운영 사이트는 PHP mail() 폴백을 의도적으로 쓰는 경우 외에는 SMTP 권장.
9. 관련
- 설정 관리 (
/admin/setting) — 부모 페이지 - 카카오톡 공유 설정 — 같은 설정 관리 안 다른 그룹