56 lines
2.1 KiB
PHP
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'); |