Add rspamd as a second spam filter alongside SpamAssassin
Some checks are pending
continuous-integration/drone/push Build is running

Closes: #36
This commit is contained in:
nemunaire 2026-02-23 00:10:57 +07:00
commit 25afbcf90a
18 changed files with 512 additions and 27 deletions

View file

@ -264,6 +264,26 @@ func (e *EmailMessage) GetSpamAssassinHeaders() map[string]string {
return headers
}
// GetRspamdHeaders extracts rspamd-related headers
func (e *EmailMessage) GetRspamdHeaders() map[string]string {
headers := make(map[string]string)
rspamdHeaders := []string{
"X-Spamd-Result",
"X-Rspamd-Score",
"X-Rspamd-Action",
"X-Rspamd-Server",
}
for _, headerName := range rspamdHeaders {
if value := e.Header.Get(headerName); value != "" {
headers[headerName] = value
}
}
return headers
}
// GetTextParts returns all text/plain parts
func (e *EmailMessage) GetTextParts() []MessagePart {
return filterParts(e.Parts, func(p MessagePart) bool {