- 离线邮件提醒ID offline_mail_notice版本 1.0.3插件制作者 webmaster售价 10 积分1202 行 / 64 KBHook / 路由 / 后台页用户离线时把回帖、私信(含 mymsg 私信)、被 @ 提及汇总成邮件发送;在线则不发,避免打扰。收费插件安装说明购买后点击“授权码”获取一次性授权码;在后台 > 插件广场点击在线安装或更新,并填写该授权码。已购买用户更新免费:每次在线安装或更新前,重新点击“授权码”获取新的一次性授权码即可,无需再次购买;也可直接下载新版后用后台“插件上传”更新。尊重并感谢他人劳动,请勿传播代码。app/plugins/offline_mail_notice/plugin.php插件预览3 张开发日志已有 1 条
个人独立维护项目。
主楼 版本 1.0.3 更新:
用户在「个人主页 → 邮件提醒」里开启后,收到回帖 / 私信(站内私信由 mymsg 插件产生,kind=mymsg,已按「私信」处理)/ @ 提及会先入队;到达汇总延迟后,计划任务会先判断他是否在线,在线就直接丢弃不发邮件,离线才把这段时间的所有提醒合并成一封邮件发出。已被读过的通知不会重复发邮件。下面「发送状态」里能看到每批的实际结果:已发送 / 失败(发送失败的原因会写在这里)。已跳过的批次(例如用户在线、未读等)不再单独展示,需要保持记录整洁时可点「清空发送记录」。插件质量报告
插件:
offline_mail_noticeHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 app.boot 全站请求启动 否 5 - - - 写 plugin_offline_mail_presence notification.after_create 通知及未读数写入后 否 3 - - - 写 plugin_offline_mail_queue profile.after_form 个人资料编辑表单 否 3 - - - - reply.after_save 回帖保存后 否 3 - - app_replies, app_topics - user.profile_tabs 用户资料页标签栏(展示位置:个人主页Tab) 否 3 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_offline_mail_settings字段 类型 可空 默认值 约束 user_id uint 否 - 主键 enabled INTEGER 否 1 - kinds key 否 'all' - digest_minutes uint 否 0 - email string 否 '' - quiet_enabled INTEGER 否 0 - quiet_start uint 否 23 - quiet_end uint 否 8 - updated_at uint 否 0 - plugin_offline_mail_queue字段 类型 可空 默认值 约束 id id 否 - 主键、自增 user_id uint 否 - - notification_id uint 否 0 - kind key 否 '' - content text 否 - - sender_id uint 否 0 - topic_id uint 否 0 - reply_id uint 否 0 - created_at uint 否 0 - available_at uint 否 0 - status key 否 'pending' - attempts uint 否 0 - next_retry_at uint 否 0 - last_error text 否 - - updated_at uint 否 0 - plugin_offline_mail_presence字段 类型 可空 默认值 约束 user_id uint 否 - 主键 last_seen_at uint 否 0 - plugin_offline_mail_logs字段 类型 可空 默认值 约束 id id 否 - 主键、自增 user_id uint 否 0 - recipient string 否 '' - subject text 否 - - item_count uint 否 0 - status key 否 'sent' - message text 否 - - created_at uint 否 0 - 有没有一种可能,邮箱信息我都不看呢🥳