그누보드에서 네이버 SMTP와 PHPMailer를 활용해 외부 메일 발송 설정하기
페이지 정보

본문
그누보드 운영 시 기본 메일 발송 실패나 스팸 처리를 해결하기 위해 네이버 SMTP와 PHPMailer를 연동하는 구체적인 설정 절차와 확인 방법을 알아봅니다.
네이버 메일 환경설정 확인 항목
그누보드에서 네이버 SMTP를 연동하기 전, 네이버 메일 환경설정에서 다음 항목들을 확인하고 활성화해야 합니다.
- POP3/IMAP 설정: 네이버 메일 접속 후 [환경설정] > [POP3/IMAP 설정] 메뉴에서
IMAP/SMTP 사용을사용함으로 설정합니다. - 보안 인증: 네이버 [내 정보] > [보안 설정]에서
2단계 인증을 활성화한 뒤, [애플리케이션 비밀번호] 관리 메뉴에서 메일 연동용 비밀번호를 생성합니다. (기존 계정 비밀번호가 아닌 이 생성된 비밀번호를 SMTP 설정에 사용합니다.)
PHPMailer 라이브러리 업로드 경로
PHPMailer 라이브러리는 그누보드의 plugin 폴더에 업로드해야 합니다.
디렉토리 구조 예시
그누보드 설치 경로 하위의 plugin 폴더 안에 다음과 같은 구조로 업로드합니다.
그누보드5
├ plugin
│ └ PHPMailer-6.9.3
│ └ src
│ ├ PHPMailer.php
│ ├ SMTP.php
│ └ Exception.php
이후 메일 발송 함수 구현 시 G5_PLUGIN_PATH . '/PHPMailer-6.9.3/src/...' 경로를 통해 해당 라이브러리 파일들을 불러오게 됩니다.
config.php SMTP 설정 방법
그누보드 설치 환경의 config.php 파일 내 SMTP 관련 상수를 네이버 SMTP 정보에 맞게 추가하거나 수정해야 합니다.
수정할 상수 목록
config.php 파일에 아래의 상수를 정의합니다.
define('G5_SMTP', 'smtp.naver.com');
define('G5_SMTP_PORT', '465');
define('G5_SMTP_SECURE', 'ssl');
define('G5_SMTP_USER', '[email protected]');
define('G5_SMTP_PW', 'yourpassword'); // 네이버 앱 비밀번호
주의사항
- 설정 변경 전에는 반드시 원본 파일을 백업하시기 바랍니다.
G5_SMTP_PW에는 네이버 2단계 인증 활성화 후 정상적으로 생성된 애플리케이션 비밀번호를 입력해야 합니다.
네이버 SMTP 전용 메일러 함수 구현 및 테스트 방법
그누보드에서 일반 페이지나 커스텀 환경으로 안정적인 메일 발송을 구현하려면 별도의 mailer_naver.lib.php 파일을 생성해 네이버 SMTP 전용 함수를 구현하고, 테스트 코드를 웹브라우저에서 실행해 정상 발송 여부를 점검할 수 있습니다.
1. mailer_naver.lib.php 파일 구현
lib/mailer.lib.php 수정 또는 별도의 mailer_naver.lib.php 파일을 생성하여 아래와 같이 네이버 SMTP 전용 함수 mailer_naver를 작성합니다.
<?php
if (!defined('_GNUBOARD_')) exit;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
function mailer_naver($to_email, $to_name, $from_email, $from_name, $subject, $content, $is_html = true) {
require_once(G5_PLUGIN_PATH . '/PHPMailer-6.9.3/src/PHPMailer.php');
require_once(G5_PLUGIN_PATH . '/PHPMailer-6.9.3/src/SMTP.php');
require_once(G5_PLUGIN_PATH . '/PHPMailer-6.9.3/src/Exception.php');
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.naver.com';
$mail->SMTPAuth = true;
$mail->Username = G5_SMTP_USER;
$mail->Password = G5_SMTP_PW;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = '465';
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->setFrom($from_email, '=?UTF-8?B?'.base64_encode($from_name).'?=');
$mail->addAddress($to_email, '=?UTF-8?B?'.base64_encode($to_name).'?=');
$mail->Subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$mail->isHTML($is_html);
$mail->Body = $content;
return $mail->send();
} catch (Exception $e) {
error_log('메일 발송 실패: ' . $mail->ErrorInfo);
return false;
}
}
?>
2. 테스트 코드 작성 및 실행
설정이 완료되면 웹브라우저에서 테스트 파일을 실행하여 정상 발송 여부를 확인합니다.
<?php
include_once('./common.php');
$from_email = $config['cf_admin_email'];
$from_name = $config['cf_admin_email_name'];
$to_email = '받는_이메일주소';
$to_name = '받는_이름';
$mail_subject = 'Title 네이버 SMTP 테스트 메일';
$mail_content = '<p>Message 이메일이 정상적으로 발송되었습니다.</p>';
include_once(G5_LIB_PATH . '/mailer_naver.lib.php');
if (mailer_naver($to_email, $to_name, $from_email, $from_name, $mail_subject, $mail_content)) {
echo '이메일이 정상적으로 발송되었습니다.';
} else {
echo '이메일 발송에 실패했습니다.';
}
?>
상황별 판단 및 행동 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 기본 메일 발송 실패 또는 스팸 처리됨 | 네이버 SMTP 연동 필요 | 네이버 메일 환경설정에서 IMAP/SMTP 사용을 활성화하고, 2단계 인증 후 애플리케이션 비밀번호 생성 |
| 네이버 SMTP 연동을 위한 코드 수정 | PHPMailer 라이브러리 준비 | PHPMailer를 plugin 폴더에 업로드하고 config.php 설정 및 별도 메일러 함수 구현 |
| 설정 후 정상 작동 여부 확인 | 테스트 파일 실행 | 테스트 코드를 작성하여 웹브라우저에서 실행하고 발송 성공 여부 점검 |
실전 FAQ
Q. 네이버 일반 비밀번호를 사용해도 되나요?
- 예외: 네이버 2단계 인증이 활성화된 경우 일반 비밀번호는 사용할 수 없습니다. 반드시 네이버 설정에서 생성한 애플리케이션 비밀번호를
G5_SMTP_PW에 입력해야 합니다.
Q. 테스트 중 메일 발송에 실패하면 어떻게 하나요?
- 대안:
mailer_naver함수 내catch블록에서 기록하는error_log를 확인하십시오.$mail->ErrorInfo에 출력된 메시지를 통해 SMTP 인증 오류인지, 네트워크 문제인지 파악할 수 있습니다.
참고자료
기타 참고자료
- 이전글아미나 빌더 비메오 링크 삭제로 인한 게시판 목록 멈춤 오류 해결 방법 26.09.12
- 다음글그누커머스 우편번호 서비스 로딩 오류 해결 방법 26.09.11
댓글목록
등록된 댓글이 없습니다.