Gnuboard5 Second Edition

그누보드5 SE └ SMTP 메일 발송 매뉴얼

문서

부모 매뉴얼: 설정 관리 (/admin/setting) → smtp 그룹

g5se 가 메일을 보낼 때 PHP 의 mail() 함수 대신 외부 SMTP 서버 (Gmail / Naver / 자체 SMTP 등) 를 사용하도록 설정한다.

host 필드를 비워두면 자동으로 PHP mail() 폴백 — SMTP 설정 없이도 동작은 하지만, 발송 실패율과 스팸 처리가 SMTP 보다 훨씬 나쁘다. 운영 사이트는 거의 항상 SMTP 사용 권장.

1. 폼 진입

  1. super-admin 로그인
  2. /admin/setting → 목록에서 SMTP 메일 발송 카드의 [편집]
  3. 필드 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자

앱 비밀번호 만들기

  1. myaccount.google.com/apppasswords 접속
  2. 2단계 인증이 꺼져있으면 먼저 활성화 (앱 비밀번호 발급 전제 조건)
  3. 앱 이름 입력 (예: g5se) → 만들기
  4. 표시된 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자

애플리케이션 비밀번호 만들기

  1. mail.naver.com 환경설정 → POP3/IMAP 설정 → "IMAP/SMTP 설정" 또는 "POP3/SMTP 설정" 탭 → 사용함 선택
  2. 같은 페이지 안내 박스의 [설정하기] 버튼 → 네이버 ID 보안설정으로 이동
  3. 2단계 인증 활성화 (이미 켜있으면 건너뜀)
  4. 애플리케이션 비밀번호 생성 — 종류 "직접 입력" + 식별 이름 (예: g5se) → [생성하기]
  5. 표시된 12자 비번 메모 (창 닫으면 다시 못 봄)
  6. POP3/IMAP 설정 페이지로 돌아가서 [저장]
  7. 위 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. 동작 확인

  1. 폼 저장 → "SMTP 메일 발송 설정이 저장되었습니다." toast
  2. 가입 인증 메일 / 비밀번호 찾기 / mailer.lib.php 의존 기능을 트리거 (예: 회원가입 메일 인증)
  3. 받은 메일이 정상 도착하면 OK
  4. 도착 안 함 → 사이트 로그 / 메일 서버 로그 확인 (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. 관련