TYPO3:如何配置通知邮件及网站状态定期通知
TYPO3 登录事件通知及定期状态邮件配置方案
一、登录相关事件邮件配置(失败/成功登录通知)
TYPO3没有内置一键开关,可通过以下两种方式实现:
1. 使用第三方扩展快速配置
用成熟的登录通知扩展(比如b13/login-notifications)是最省心的方式:
- 安装扩展后,进入站点配置 > 配置预设或扩展专属设置页面
- 分别开启「失败登录通知」和「成功登录通知」选项,填写管理员接收邮箱
- 可选设置:排除特定IP(比如管理员常用办公IP),避免自己登录时重复触发通知
2. 自定义代码实现(适合有开发能力的场景)
在你的站点扩展里添加事件监听器,监听TYPO3的登录事件:
- 创建监听器文件
Classes/EventListener/LoginNotificationListener.php,代码示例:
<?php namespace Vendor\YourSiteExtension\EventListener; use TYPO3\CMS\Core\Mail\MailMessage; use TYPO3\CMS\Core\Utility\GeneralUtility; class LoginNotificationListener { // 处理失败登录事件 public function onLoginFailed(\TYPO3\CMS\Core\Authentication\Event\LoginAttemptFailedEvent $event): void { $mail = GeneralUtility::makeInstance(MailMessage::class); $mail->setFrom(['system@your-domain.tld' => 'TYPO3系统']) ->setTo(['admin@your-domain.tld' => '管理员']) ->setSubject('TYPO3后台登录失败提醒') ->setTextBody("账号:{$event->getUsername()},登录IP:{$event->getRequest()->getAttribute('remoteAddress')}") ->send(); } // 处理成功登录事件 public function onLoginSuccess(\TYPO3\CMS\Core\Authentication\Event\LoginSuccessfulEvent $event): void { $user = $event->getUser(); $mail = GeneralUtility::makeInstance(MailMessage::class); $mail->setFrom(['system@your-domain.tld' => 'TYPO3系统']) ->setTo(['admin@your-domain.tld' => '管理员']) ->setSubject('TYPO3后台登录成功提醒') ->setTextBody("用户:{$user->getProperty('username')},登录IP:{$event->getRequest()->getAttribute('remoteAddress')}") ->send(); } }
- 在
Configuration/Services.yaml注册监听器:
services: Vendor\YourSiteExtension\EventListener\LoginNotificationListener: tags: - name: event.listener identifier: 'site-extension/login-failed' event: TYPO3\CMS\Core\Authentication\Event\LoginAttemptFailedEvent method: 'onLoginFailed' - name: event.listener identifier: 'site-extension/login-success' event: TYPO3\CMS\Core\Authentication\Event\LoginSuccessfulEvent method: 'onLoginSuccess'
- 清除系统缓存后即可生效
二、定期网站状态邮件配置
利用TYPO3自带的lowlevel扩展结合调度任务实现:
- 确保
lowlevel扩展已启用(默认状态下为启用) - 进入系统 > 调度任务,点击「新建任务」:
- 任务类型选择「System Status Check (lowlevel)」
- 设置执行周期:根据需求选择每天/每周/每月执行一次
- 任务配置项:
- 勾选「发送邮件」选项
- 填写管理员接收邮箱
- 选择需要检查的状态项:比如系统更新、扩展更新、文件权限、数据库状态等
- 保存任务后,调度器会自动定期执行检查并发送状态报告邮件
内容的提问来源于stack exchange,提问作者Kar
相关产品推荐
相关产品推荐

