<?php
// 기본 비밀번호로 SMTP 연결 테스트
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';

function testBasicPassword() {
    $mail = new PHPMailer(true);
    
    try {
        // 디버그 모드 활성화
        $mail->SMTPDebug = 2;
        
        $mail->isSMTP();
        $mail->Host = 'smtp.naver.com';
        $mail->SMTPAuth = true;
        $mail->Username = 'kd5130@naver.com';
        $mail->Password = 'kd9835130'; // 기본 비밀번호 테스트
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
        $mail->Port = 465;
        
        $mail->CharSet = 'UTF-8';
        
        echo "<h3>기본 비밀번호로 SMTP 연결 테스트</h3>";
        
        // 연결 테스트
        $mail->smtpConnect();
        echo "<p style='color: green;'>✅ 기본 비밀번호로 연결 성공!</p>";
        
        // 간단한 테스트 메일 전송 시도
        $mail->setFrom('kd5130@naver.com', '테스트');
        $mail->addAddress('kd5130@naver.com'); // 자기 자신에게 테스트
        $mail->Subject = 'SMTP 테스트';
        $mail->Body = '기본 비밀번호로 전송 테스트입니다.';
        
        $mail->send();
        echo "<p style='color: green;'>✅ 기본 비밀번호로 메일 전송 성공!</p>";
        
    } catch (Exception $e) {
        $error = $e->getMessage();
        echo "<p style='color: red;'>❌ 오류: " . htmlspecialchars($error, ENT_QUOTES, 'UTF-8') . "</p>";
        
        // 오류 메시지 분석
        if (strpos($error, '535') !== false || strpos($error, 'authentication') !== false) {
            echo "<p style='color: orange;'>⚠️ 인증 오류 - 앱 비밀번호가 필요할 수 있습니다.</p>";
        } elseif (strpos($error, 'connection') !== false) {
            echo "<p style='color: orange;'>⚠️ 연결 오류 - 네트워크 또는 포트 문제일 수 있습니다.</p>";
        }
    }
}

function testDifferentPorts() {
    echo "<h3>다양한 포트로 연결 테스트</h3>";
    
    $ports = array(
        465 => 'SMTPS (SSL)',
        587 => 'SMTP (TLS)',
        25 => 'SMTP (일반)'
    );
    
    foreach ($ports as $port => $description) {
        $mail = new PHPMailer(true);
        
        try {
            $mail->SMTPDebug = 0; // 디버그 비활성화
            
            $mail->isSMTP();
            $mail->Host = 'smtp.naver.com';
            $mail->SMTPAuth = true;
            $mail->Username = 'kd5130@naver.com';
            $mail->Password = 'kd9835130';
            
            if ($port == 465) {
                $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
            } elseif ($port == 587) {
                $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
            } else {
                $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
            }
            
            $mail->Port = $port;
            $mail->CharSet = 'UTF-8';
            
            $mail->smtpConnect();
            echo "<p style='color: green;'>✅ 포트 $port ($description): 연결 성공</p>";
            
        } catch (Exception $e) {
            echo "<p style='color: red;'>❌ 포트 $port ($description): " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "</p>";
        }
    }
}

echo "<h2>네이버 SMTP 연결 테스트 (기본 비밀번호)</h2>";
echo "<p><strong>테스트 계정:</strong> kd5130@naver.com</p>";
echo "<p><strong>테스트 비밀번호:</strong> kd9835130</p>";

testBasicPassword();
testDifferentPorts();

echo "<hr>";
echo "<h3>결론:</h3>";
echo "<p>1. 기본 비밀번호가 작동한다면 → 2단계 인증이 필요 없음</p>";
echo "<p>2. 인증 오류가 발생한다면 → 앱 비밀번호 필요</p>";
echo "<p>3. 연결 오류가 발생한다면 → 네트워크/포트 문제</p>";
?> 