johndoh/sauserprefs

在 Roundcube 中控制 SpamAssassin 设置

安装数: 3,025

依赖项: 0

建议者: 0

安全: 0

星标: 55

关注者: 7

分支: 18

公开问题: 1

类型:roundcube 插件

1.20 2022-06-18 07:15 UTC

README

此插件允许用户在 Roundcube 内编辑 SpamAssassin 用户偏好设置。它通过 SQL 与数据库中的偏好设置进行交互。有关将 SpamAssassin 配置为与数据库一起使用的信息,请参阅 SpamAssassin Wiki

此插件的灵感来源于: WebUserPrefs

注意

这只是 GIT 仓库的快照,并且 不是 SAUserPrefs 的稳定版本。它旨在与 Roundcube 的 GIT-master 版本一起使用,并且可能不兼容较旧版本。SAUserPrefs 的稳定版本可在 Roundcube 插件仓库(1.0 及以上版本)或 GitHub 仓库的 发布部分 中找到。

要求

许可证

此插件在 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 来覆盖。