Files
2026-06-11 18:47:38 +09:00

56 lines
2.1 KiB
PHP

<?php
$sub_menu = "600500"; // 관리자 메뉴 활성화를 위한 고유 코드
// [개선] GnuBoard의 표준 관리자 공통 파일을 사용하도록 경로를 수정합니다.
include_once(__DIR__."/_common.php");
// 1. 권한 확인
auth_check_menu($auth, $sub_menu, "r");
// 2. 필요한 클래스 포함
require_once(__DIR__ . '/classes/TemplateManager.php');
require_once(__DIR__ . '/classes/MailSender.php');
// 3. POST 요청 처리 (메일 발송)
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['token'])) {
auth_check_menu($auth, $sub_menu, 'w');
check_admin_token();
$template_code = trim($_POST['template_code'] ?? '');
$to_email = trim($_POST['to_email'] ?? '');
// [확인] 동적으로 생성된 variables[변수명] 형태의 데이터를 배열로 받습니다.
$vars = $_POST['variables'] ?? [];
// 유효성 검사
if (!filter_var($to_email, FILTER_VALIDATE_EMAIL)) {
alert('올바른 이메일 주소를 입력해주세요.');
}
if (empty($template_code)) {
alert('사용할 템플릿을 선택해주세요.');
}
try {
$mailSender = new MailSender();
$success = $mailSender->send($template_code, $to_email, $vars);
if ($success) {
alert('테스트 메일이 성공적으로 발송되었습니다. 발송 이력 페이지에서 결과를 확인하세요.', './send_log.php');
} else {
alert('메일 발송에 실패했습니다. 발송 이력 페이지에서 오류 메시지를 확인하세요.', './send_log.php');
}
} catch (Exception $e) {
alert('메일 발송 중 시스템 오류가 발생했습니다: ' . $e->getMessage());
}
exit;
}
// 4. GET 요청 처리 (폼 표시)
$g5['title'] = '테스트 메일 발송';
// 폼에 필요한 템플릿 목록을 가져옴
$templateManager = new TemplateManager();
$templates = $templateManager->getAll();
// 뷰(View) 파일 포함
include_once(G5_ADMIN_PATH.'/admin.head.php');
include_once(__DIR__.'/templates/send_test_form.php');
include_once(G5_ADMIN_PATH.'/admin.tail.php');