官方插件由开发者「贰先生」提供,仅作开发参考,不建议直接用于生产运营环境。
官方应用中心的插件分为免费和金币付费。金币可通过签到等免费获取,金币购买不退款。
官方不提供现金交易,线下交易风险自担,请仔细鉴别!
官方不提供现金交易,线下交易风险自担,请仔细鉴别!
xnx_login_alert 登录提醒
功能
用户登录成功后自动发送邮件提醒,邮件包含:用户名、登录时间、IP 地址、浏览器、操作系统
个人中心开关:用户可在安全设置页自主开启/关闭
管理员后台配置:全局开关、用户默认开关、邮件模板(支持变量替换)、频率限制
频率限制:同 IP 重复登录时按配置间隔(分钟)限流,不同 IP 始终发送
模板变量:{username}, {time}, {ip}, {location}, {browser}, {site_name}, {site_url}
使用系统异步邮件发送(xn_send_mail_async),不阻塞登录流程
用户记录存储于 xnx_login_alert_user 表,记录开关状态和最后发送 IP/时间
文件结构
plugin/xnx_login_alert/
├── conf.json
├── install.php / uninstall.php # 建 xnx_login_alert_user 表
├── setting.php # 后台配置 + 邮件预览
├── update.md
├── model/
│ └── LoginAlertService.php # 核心服务
├── admin/view/htm/
│ └── login_alert_admin.htm # 后台配置页
└── hook/
├── model_inc_file.php # 自动加载 Service
├── user_login_post_end.php # 登录后触发 sendLoginAlert
├── my_action_before.php # 个人中心入口
├── my_security_end.htm # 安全设置页开关 UI
└── ...配置流程
后台「插件管理」启用 xnx_login_alert
进入「插件设置」→ 配置全局开关、默认开关、邮件模板、频率限制
用户登录后自动收到邮件(需确保 SMTP 已配置)
用户可在「个人中心 → 安全设置」关闭提醒
扩展说明
LoginAlertService 为纯静态类,通过 hook/model_inc_file.php 自动加载。
Service 类方法
LoginAlertService::getSettings(): array
LoginAlertService::getUserSetting(int $uid): array
LoginAlertService::saveUserSetting(int $uid, int $enabled): void
LoginAlertService::sendLoginAlert(array $user): void # 主入口,hook 调用
LoginAlertService::checkFrequency(int $uid, string $ip): bool
LoginAlertService::replaceVariables(string $template, array $data): string
LoginAlertService::getBrowserSummary(string $ua): string
LoginAlertService::getClientIp(): string触发时机
user_login_post_end.php:用户登录成功后自动调用sendLoginAlert()检查顺序:全局开关 → 用户开关 → 频率限制 → 发送邮件 → 更新记录
版本 1.0.0 | 兼容 Xiuno 1.1+
截图 1
v1.0.10
2026-08-06
优化邮件模板格式化的问题
v1.0.0
2026-08-03