set('smtp_port', $port);
} else {
$error = "SMTP端口无效(1-65535)";
}
}
// POP3端口
if (isset($_POST['pop3_port'])) {
$port = (int)$_POST['pop3_port'];
if (Validator::validatePort($port)) {
$settingsRepo->set('pop3_port', $port);
} else {
$error = "POP3端口无效(1-65535)";
}
}
// 域名
if (isset($_POST['domain'])) {
$domain = trim($_POST['domain']);
if (!empty($domain)) {
$settingsRepo->set('domain', $domain);
}
}
// 默认邮箱大小限制
if (isset($_POST['mailbox_size_limit'])) {
$size = (int)$_POST['mailbox_size_limit'];
if ($size > 0) {
$settingsRepo->set('mailbox_size_limit', $size);
}
}
// 日志路径
if (isset($_POST['log_path'])) {
$settingsRepo->set('log_path', trim($_POST['log_path']));
}
// 日志最大大小
if (isset($_POST['log_max_size'])) {
$size = (int)$_POST['log_max_size'];
if ($size > 0) {
$settingsRepo->set('log_max_size', $size);
}
}
if (empty($error)) {
$message = "系统设置已更新";
}
}
// 处理管理员密码修改
if (isset($_POST['change_admin_password'])) {
$oldPassword = $_POST['old_password'] ?? '';
$newPassword = $_POST['new_password'] ?? '';
$confirmPassword = $_POST['confirm_password'] ?? '';
$user = $userRepo->findById($_SESSION['user_id']);
if (!Security::verifyPassword($oldPassword, $user['password_hash'])) {
$error = "原密码错误";
} else {
$passwordValidation = Validator::validatePassword($newPassword, 6);
if (!$passwordValidation['valid']) {
$error = implode('
', $passwordValidation['errors']);
} elseif ($newPassword !== $confirmPassword) {
$error = "两次输入的密码不一致";
} else {
if ($userRepo->update($_SESSION['user_id'], ['password' => $newPassword])) {
$message = "管理员密码已更新";
} else {
$error = "密码更新失败";
}
}
}
}
// 处理用户邮箱大小设置
if (isset($_POST['set_mailbox_size'])) {
$userId = (int)$_POST['user_id'];
$sizeBytes = (int)$_POST['mailbox_size'];
if ($sizeBytes > 0) {
if ($mailboxRepo->setSizeLimit($userId, $sizeBytes)) {
$message = "邮箱大小限制已更新";
} else {
$error = "更新失败";
}
} else {
$error = "邮箱大小必须大于0";
}
}
// 获取当前设置
$settings = $settingsRepo->getAll();
$users = $userRepo->getAll();
?>
| 用户 | 当前使用 | 限制大小 | 使用率 | 操作 |
|---|---|---|---|---|
| MB | MB | % |