You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于PigeonHole/Dovecot中Sieve Spamtest扩展结合rspamd的配置疑问及邮件头含义咨询

PigeonHole/Dovecot中Sieve Spamtest扩展结合rspamd的配置疑问及邮件头含义咨询

我来帮你拆解下这些疑问,一步步讲清楚:

一、X-Spamd-Result邮件头各部分含义

先看你给出的这个邮件头:

X-Spamd-Result: default: False [-1.10 / 15.00];

每个字段的作用是这样的:

  • default:这是rspamd默认使用的符号组名称,简单说就是rspamd用来归类核心规则的分组标识。除非你手动修改了rspamd的符号组配置,否则这个值基本不会变。
  • False:这代表rspamd对该邮件的判定结果——不是垃圾邮件。如果邮件得分超过了你设置的阈值(就是后面的15.00),这里会变成True,表示被判定为垃圾邮件。
  • [-1.10 / 15.00]:前面的-1.10是该邮件的实际垃圾得分(负数表示偏向正常邮件),后面的15.00是你在rspamd里设置的垃圾邮件判定阈值。

二、你的Sieve Spamtest配置问题

你的配置思路是对的,但有个关键问题需要修正:

你当前的正则里写死了default: False,但False是会变化的(垃圾邮件会变成True),这会导致Sieve无法正确识别垃圾邮件的得分。

修正后的配置建议

方案1:兼容判定结果的变化

把正则里的False改成匹配True|False,这样不管rspamd判定结果是啥,都能正确捕获分数:

sieve_spamtest_status_type = score
sieve_spamtest_status_header = X-Spamd-Result: default: (True|False) \[(-?[[:digit:]]+\.[[:digit:]]+) / [[:digit:]]+\.[[:digit:]]+\]
sieve_spamtest_max_header    = X-Spamd-Result: default: (True|False) \[-?[[:digit:]]+\.[[:digit:]]+ / ([[:digit:]]+\.[[:digit:]]+)\]

方案2:更健壮的通用匹配(推荐)

如果你担心以后可能修改rspamd的符号组名称(比如把default改成别的),可以用[^:]+来匹配任意符号组名称,让配置更灵活:

sieve_spamtest_status_type = score
sieve_spamtest_status_header = X-Spamd-Result: [^:]+: (True|False) \[(-?[[:digit:]]+\.[[:digit:]]+) / [[:digit:]]+\.[[:digit:]]+\]
sieve_spamtest_max_header    = X-Spamd-Result: [^:]+: (True|False) \[-?[[:digit:]]+\.[[:digit:]]+ / ([[:digit:]]+\.[[:digit:]]+)\]

这样配置后,不管rspamd的判定结果是True还是False,或者符号组名称有没有修改,Sieve都能正确提取到邮件的得分和阈值。

备注:内容来源于stack exchange,提问作者user2690527

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:38:05