johndoh / sauserprefs
在 Roundcube 中控制 SpamAssassin 设置
Requires
- php: >=7.0
- roundcube/plugin-installer: >=0.1.2
This package is auto-updated.
Last update: 2024-09-13 08:06:27 UTC
README
此插件允许用户在 Roundcube 内编辑 SpamAssassin 用户偏好设置。它通过 SQL 与数据库中的偏好设置进行交互。有关将 SpamAssassin 配置为与数据库一起使用的信息,请参阅 SpamAssassin Wiki。
此插件的灵感来源于: WebUserPrefs
注意
这只是 GIT 仓库的快照,并且 不是 SAUserPrefs 的稳定版本。它旨在与 Roundcube 的 GIT-master 版本一起使用,并且可能不兼容较旧版本。SAUserPrefs 的稳定版本可在 Roundcube 插件仓库(1.0 及以上版本)或 GitHub 仓库的 发布部分 中找到。
要求
- Roundcube jQueryUI 插件
- SpamAssassin 3.0 或以上
许可证
此插件在 GNU 通用公共许可证版本 3+ 下发布。
尽管皮肤可能包含一些编程工作,但它们不被视为插件的链接部分,因此皮肤 不适用于 GPL 许可证的条款。有关皮肤许可证的详细信息,请参阅位于核心皮肤文件夹中的 README 文件。
安装
- 将此插件文件夹放入 Roundcube 的插件目录中
- 在您的 Roundcube 配置中的 $config['plugins'] 中添加 sauserprefs
注意:从 GitHub 下载插件时,您需要创建一个名为 sauserprefs 的目录,并将文件放在其中,忽略已下载存档中的根目录。
配置
默认配置文件为 plugins/sauserprefs/config.inc.php.dist。将其重命名为 plugins/sauserprefs/config.inc.php
- 您必须设置数据库连接字符串
- 输入表名、用户名字段名、偏好设置字段和值字段名
SpamAssassin v4
要启用对 SpamAssassin v4 的支持,请在您的配置文件中将 $config['sauserprefs_sav4'] = true;
设置为 true。这将自动将旧规则名称(如 whitelist_from
)替换为其 v4 等价物。注意:配置文件中的某些默认偏好设置可能需要更新。有关更多详细信息,请参阅 SpamAssassin 文档。
支持的语言选项 ok_languages
来自 Mail::SpamAssassin::Plugin::TextCat
- af - 阿非利堪斯语
- am - 阿姆哈拉语
- ar - 阿拉伯语
- be - 白俄罗斯语
- bg - 保加利亚语
- bs - 波斯尼亚语
- ca - 加泰罗尼亚语
- cs - 捷克语
- cy - 威尔士语
- da - 丹麦语
- de - 德语
- el - 希腊语
- en - 英语
- eo - 世界语
- es - 西班牙语
- et - 爱沙尼亚语
- eu - 巴斯克语
- fa - 波斯语
- fi - 芬兰语
- fr - 法语
- fy - 弗里斯兰语
- ga - 爱尔兰语
- gd - 苏格兰盖尔语
- he - 希伯来语
- hi - 印地语
- hr - 克罗地亚语
- hu - 匈牙利语
- hy - 亚美尼亚语
- id - 印度尼西亚语
- is - 冰岛语
- it - 意大利语
- ja - 日语
- ka - 格鲁吉亚语
- ko - 韩语
- la - 拉丁语
- lt - 立陶宛语
- lv - 拉脱维亚语
- mr - 马拉地语
- ms - 马来语
- ne - 尼泊尔语
- nl - 荷兰语
- 无 - 挪威语
- pl - 波兰语
- pt - 葡萄牙语
- qu - 基切瓦语
- rm - 拉脱罗曼语
- ro - 罗马尼亚语
- ru - 俄语
- sa - 萨ンス克里特语
- sco - 苏格兰语
- sk - 斯洛伐克语
- sl - 斯洛文尼亚语
- sq - 阿尔巴尼亚语
- sr - 塞尔维亚语
- sv - 瑞典语
- sw - 斯瓦希里语
- ta - 泰米尔语
- th - 泰语
- tl - 他加禄语
- tr - 土耳其语
- uk - 乌克兰语
- vi - 越南语
- yi - 犹太语
- zh - 中文(繁体和简体)
- zh.big5 - 中文(繁体)
- zh.gb2312 - 中文(简体)
更改部分顺序
要更改部分的顺序,请将具有所需顺序部分的 sections 属性添加到 skins/[skin]/templates/sauserprefs.html 中的 sasectionslist 对象中。例如
<roundcube:object name="sasectionslist" id="sections-table" class="records-table" cellspacing="0" sections="general,tests,bayes,headers,report,addresses" />
删除数据库中存储的用户贝叶斯数据
如果贝叶斯数据与用户首选项存储在同一个数据库中,则用户可以从用户界面中删除他们的数据。请参阅配置文件中的示例 SQL
"服务当前不可用!错误编号 [500]" 错误信息
在某些配置中,用户可能会在 sauserprefs 屏幕顶部看到“服务当前不可用!错误编号 [500]”。在这种情况下,可能是数据库连接存在问题。尝试在配置文件中将 ?new_link=true 添加到 sauserprefs DSN 的末尾。例如
$config['sauserprefs_db_dsnw'] = 'mysql://username:password@localhost/database?new_link=true';
sauserprefs_save 钩子
在首选项保存到数据库之前,会执行插件钩子 sauserprefs_save,这允许您执行任何自定义操作,例如额外的验证或设置特定值。参数
- section: (字符串)当前首选项部分
- cur_prefs: (数组)当前用户首选项
- new_prefs: (数组)新首选项
- global_prefs: (数组)全局首选项
返回
- new_prefs: (数组)新首选项
- abort: (布尔值)如果为 true,则不会保存首选项
- message: (字符串)可选原因,说明为什么未保存首选项,并将显示给用户
sauserprefs_sections_list 钩子
这允许您修改部分列表。参数
- list: (数组)当前部分数组
- cols: (数组)要显示的列名
返回
- list: (数组)新的部分数组
- cols: (数组)要显示的列名
sauserprefs_section_name 钩子
这允许您修改首选项屏幕顶部显示的标题。参数
- section: (字符串)所选首选项部分
- title: (字符串)当前部分的标题
返回
- title: (字符串)当前部分的标题
sauserprefs_list 钩子
这允许您在显示之前修改首选项屏幕的元素。参数
- section: (字符串)所选首选项部分
- block: (数组)包含首选项块/选项的数组
返回
- block: (数组)包含首选项块/选项的数组
替换存储类
要替换默认的 SQL 存储类为您自己的,您需要设置特殊的配置选项
- sauserprefs_storage: (字符串)存储类后缀,例如默认的 sql 存储类 'sql',Roudcube 配置对象传递到类的构造函数中
覆盖 SpamAssassin 测试分数
可以向 UI 添加一个额外的“测试分数”部分,以便覆盖默认测试分数(例如 score A_HREF_TO_REMOVE 2.0
)。为此,请将分数添加到 sauserprefs_default_prefs
数组中。例如
$config['sauserprefs_default_prefs'] = [ ... 'score SYMBOLIC_TEST_NAME' => 2.0, ];
自定义 Elastic 皮肤
此插件使用的颜色和样式可以通过在此插件的 skins/elastic
子文件夹中添加一个 _custom.less
文件并重新编译 CSS 来覆盖。