채택완료

네이버 SMTP 사용 관련 문의입니다!

안녕하세요
현재 호스팅케이알 웹호스팅을 이용 중이고, 메일서버를 지원하지 않는다고 하여
게시판 문의하기 글 작성 시 '문의글 등록하였습니다.'와 같은 메일이 오지 않는 상황입니다.

우선 네이버 메일 환경설정에서 POP3/SMTP와 IMAP/SMTP 둘 다 사용함으로 설정했습니다.
1779957364_fky21PBTOx.webp1779957364_da1NGhaH2y.webp

// config.php
Copy
// SMTP
// lib/mailer.lib.php 에서 사용
define('G5_SMTP', 'smtp.naver.com');
define('G5_SMTP_PORT', '587');
define('G5_SMTP_SECURE', 'tls');
define('G5_SMTP_USER', '[email protected]');
define('G5_SMTP_PW', '-');
define('G5_SMTP_TIMEOUT', 10);


해당 비밀번호는 네이버 비밀번호가 아닌 2단계 인증 및 전용 애플리케이션 비밀번호에서 생성한 비밀번호 입력했습니다.
587&tls 아닌 465&ssl로 해도 메일이 안 옵니다..

// lib/mailer.lib.php
Copy
try {
        $mail = new PHPMailer(true);
    
        if (defined('G5_SMTP') && G5_SMTP) {
            $mail->IsSMTP();
            $mail->Host = G5_SMTP;
    
            if (defined('G5_SMTP_PORT') && G5_SMTP_PORT) {
                $mail->Port = G5_SMTP_PORT;
            }
    
            $mail->SMTPAuth = true;
            $mail->AuthType = "LOGIN";
            $mail->SMTPSecure = G5_SMTP_SECURE;
            $mail->Username = G5_SMTP_USER;
            $mail->Password = G5_SMTP_PW;
            $mail->Timeout = 10;
            $mail->SMTPKeepAlive = false;
        }
    
        $mail->CharSet = 'UTF-8';
        $mail->From = G5_SMTP_USER;
        $mail->FromName = $fname;
    
        if ($fmail) {
            $mail->addReplyTo($fmail, $fname);
        }
    
        $mail->Subject = $subject;
        $mail->AltBody = "";
        $mail->msgHTML($content);
        $mail->addAddress($to);
    
        if ($cc) {
            $mail->addCC($cc);
        }
    
        if ($bcc) {
            $mail->addBCC($bcc);
        }
    
        if ($file != "") {
            foreach ($file as $f) {
                $mail->addAttachment($f['path'], $f['name']);
            }
        }
    
        $mail = run_replace('mail_options', $mail, $fname, $fmail, $to, $subject, $content, $type, $file, $cc, $bcc);
    
        $mail_send_result = $mail->send();
    
    } catch (Exception $e) {
        error_log('Mailer Exception: ' . $mail->ErrorInfo);
        $mail_send_result = false;
    }


그누보드 이전 문의글들과 구글링을 통해 위와 같이 코드 변경하고
여러 코드들로 시도해봤으나 메일이 안 옵니다..

메일 테스트로 발송 시, 아래 이미지와 같이
메일 발송이 완료되었다고는 하는데 메일이 수신이 안됩니다.
1779958024_Ii4IGWTJvT.webp

받은 메일함/보낸 메일함/스팸 메일함 다 확인해봤습니다!

같은 현상 겪으신 분들이나
도움 주실 수 있으신 분들이 계시다면 답변 부탁드립니다 ㅠ.ㅠ
긴 글 읽어주셔서 감사합니다!
 

답변 3개 / 댓글 2개

채택된 답변
+20 포인트
네이버 SMTP 로그인 계정과 보내는 사람 메일이 같아야 합니다.

// lib/mailer.lib.php
에 

$mail->From = $fmail

이런 코드가 있는데, 주석처리 하고 아래와 같이 하면 됩니다.

        // $mail->From = $fmail;
        $mail->From = G5_SMTP_USER;


네이버 공식 도움말도 외부 메일 프로그램 설정 시 이메일 주소/사용자 이름을 네이버 메일 주소로 넣도록 안내하고 있습니다.

https://help.naver.com/service/30029/contents/21349?lang=ko&osType=PC

답변에 대한 댓글 1개

호스팅사 문의해보니 웹호스팅에서는 SMTP가 차단 되어 있다고 합니다ㅜㅜ
친절한 답변 감사합니다!

답변에 대한 댓글 1개

융푸님 글 이전에 참고하여 테스트해봤는데 안되더라구요 ㅜㅜ
호스팅사 문의해보니 웹호스팅에서는 SMTP가 차단 되어 있다고 합니다....
그래서 안됐나봐요 항상 도움 받고 있습니다 ㅎㅎ
답변 감사합니다!

예외 error_log 에러 안찍혀 있다면~

성공했을때 로그를 찍어보세요.. 여러가지사유로 안될 수 있어서.. 바운스되거나. soft fail 및 hard fail 이 있을 수 있습니다.

아마 로그인징 정상적으로 안되었것같은 의심은 되는데, 우선

디버그 모드로 로그를 남겨보고 어떻게 디버깅 할지 방향을 잡으시면 될꺼 같습니다.

// 디버그 레벨
$mail->SMTPDebug = 2;

// 디버그 출력 방식
$mail->Debugoutput = function($str, $level) {

$log = "[" . date('Y-m-d H:i:s') . "] "
. "LEVEL {$level}: {$str}\n";

file_put_contents(
__DIR__ . '/mail.log',
$log,
FILE_APPEND
);
};

답변을 작성하려면 로그인이 필요합니다.