go-spamc is a golang package that connects to spamassassin's spamd daemon. Is a code port of nodejs module node-spamc(https://github.com/coxeh/node-spamc)
Thanks for your amazing code Carl Glaysher ;)
You are able to:
- Check a message for a spam score and return back what spamassassin matched on
- Ability to send messages to spamassassin to learn from
- Ability to do everything that spamcis capable of
- Checkchecks a message for a spam score and returns an object of information
- Symbolslike- checkbut also returns what the message matched on
- Reportlike- symbolsbut matches also includes a small description
- ReportIfSpamonly returns a result if message is spam
- ReportIgnoreWarninglike report but matches only symbols with score > 0 "New"
- Processlike- checkbut also returns a processed message with extra headers
- Headerslike- checkbut also returns the message headers in a array
- Learnabilty to parse a message to spamassassin and learn it as spam or ham
- ReportingSpamability to tell spamassassin that the message is spam
- RevokeSpamabilty to tell spamassassin that the message is not spam
example.go
package main
import (
   "fmt"
   "spamc"
)
func main() {
    html := "<html>Hello world. I'm not a Spam, don't kill me SpamAssassin!</html>"
    client := spamc.New("127.0.0.1:783",10)
    //the 2nd parameter is optional, you can set who (the unix user) do the call
    reply, _ := client.Check(html, "saintienn")
    fmt.Println(reply.Code)
    fmt.Println(reply.Message)
    fmt.Println(reply.Vars)
}