Linux平台邮件技术 --- 闭门造车,出门合辙

基于内容的垃圾邮件识别 --- 帮助文档

邮件技术

HONOR-SPAM 是一款邮件打分系统,用于识别垃圾邮件. 最新版本2.5

支持中文简体,繁体,日文,韩文,越南文,等文字

速度快,在基于dell vostro(notebook)的vmware虚拟机上,单线程每秒处理1000封信件

在线识别垃圾邮件

下载/安装/特征库/服务

下载免费版程序和特征库

最新版2.5 http://pan.baidu.com/s/1hrfROqw

安装程序

创建目录/opt/honor_mail/, 进入其中,解开honor_spam.tgz 即可 (只支持64位Linux系统, debian/ubuntu/centos)

更新特征库

下载最新版 const-(version).db.gz(建议备份), 解开得到 const.db, 移动到 ./var/spamdb/const.db

服务启动/停止/重启

./bin/master.sh start/stop/reload

文件目录说明

/opt/honor_mail/

系统默认安装路径, 所有服务运行时路径

./etc/service/spamd.cf

反垃圾服务程序的配置文件

./bin/master.sh

启动/停止/重启 脚本

./bin/spamc

工具,用于 训练,得分,测试,合并

./bin/spamd

反垃圾服务程序

./var/socket/spamd

domain socket, spamd 服务的domain socket

./var/spamdb/reloaddb_event_file

touch ./var/spamdb/reloaddb_event_file 会使spamd重新加载特征库文件

配置 etc/service/spamd.cf

server-command = bin/spamd
server-service = spamd://var/socket/spamd
# 并发进程数
server-proc-count = 1

server-log = syslog,mail

# 每进程并发线程数
honor_bayes_concurrency_limit = 0

honor_bayes_service_name = spamd

#特征库文件,可以是多个
#honor_bayes_db = var/spamdb/const.db,var/spamdb/const2.db,var/spamdb/const9.db
honor_bayes_db = var/spamdb/const.db

# touch var/spamdb/reloaddb_event_file, 会导致spamd重新加载特征库(var/spamdb/const.db)
honor_bayes_reloaddb_event_file = var/spamdb/reloaddb_event_file

# 序列号
honor_spam_license = A1CDB1FCE50BBA9F

spamc 工具使用说明

spamc 是反垃圾测试/回馈/调试工具; 包括子命令 score, ham, spam, convert_db, merge_db

下文提到的

score 测试信件得分, 离线

例子: 获得邮件a.eml, b.eml和eml_path1下所有邮件 的得分

score 测试信件得分, 在线

例子: 获得邮件a.eml, b.eml, 和 eml_path1下所有邮件 的得分

ham 训练正常信件, 离线

例子: 训练a.eml, b.eml, c.eml, eml_path1, eml_path2 下所有的邮件为正常邮件

spam 训练垃圾邮件, 离线

例子: 训练 x.eml, y.eml, z.eml, eml_path8, eml_path9 下所有的邮件为垃圾邮件

merge_db 合并数据库, 离线

例子: 合并a.db, b.db, c.db 到 train.db

convert_db 数据库格式转换, 离线

例子: 把train.db 转换为const.db, const.db是系统自带的只读数据库格式(速度快)

spamd服务, domain socket协议

客户端 连接 domain socket 文件 ./var/socket/spamd
客户端 输入 score[一个空格]邮件文件路径\r\n
服务端 返回
  OK[一个空格]得分\r\n
  ERR[一个空格]db\r\n
客户端 关闭连接 或 回到 2

# 所谓 “邮件文件路径” 形如 /opt/mail/storage/some1.eml

# 系统假设:客户端提供的任何文件都是邮件且可读.

# 所谓 “得分” 形如 0.700268,介于0.000000 ~ 1.000000 之间,越接近1.0,是垃圾邮件的可能性越大.

# 根据作者实际经验,大于0.7的是垃圾邮件,小于0.4为正常邮件.

版本历史

2.5 2019-08

增加特征分析

2.1 2019-05

行为特征分析, 更多特征

1.12 2017-06

html处理, 增加打分机制, 初级图片处理

0.9 2015-12

多字节文字乱码识别, 分词技巧调整, 全新邮件解析库, 增加特征词判定词

0.1 2007-10

贝叶斯统计, 中文分词, 繁体, 日文, 韩文, 正向最大匹配, 邮件解析

我的项目   EMAIL: eli960@qq.com   QQ: 1537212398   GITHUB.COM 提供技术支持