config.example.yml
Rama master · réplica de lectura del repositorio original.
logging:
level: debug # logging level (panic, fatal, error, warn, info, debug, trace)
providers: # providers to be used for inboxes
prov1: # provider name
type: openai # provider type
config: # provider specific configuration
apikey: some-api-key # openai apikey
model: gpt-5-mini # openai model to use
maxsize: 100000 # optional message size limit for prompt (bytes)
prompt: | # prompt to be sent to the model
Analyze the following email for its spam potential.
Return a spam score between 0 and 100. Only answer with the number itself.
{{.RawHeader}}
{{.Content}}
prov2: # provider name
type: ollama # provider type
config: # provider specific configuration
url: http://127.0.0.1:11434 # ollama url
model: gpt-oss:20b # ollama model to use
maxsize: 100000 # optional message size limit for prompt (bytes)
timeout: 5m # optional request timeout (default 2m)
prov3: # provider name
type: spamassassin # provider type
config: # provider specific configuration
host: 127.0.0.1 # spamassassin host
port: 783 # spamassassin port
maxsize: 1000000 # optional message size limit
timeout: 10s # connection timeout
prov4: # provider name
type: gemini # provider type
config: # provider specific configuration
apikey: some-api-key # gemini apikey
model: gemini-2.5-flash # gemini model to use
maxsize: 100000 # optional message size limit for prompt (bytes)
prov5: # provider name
type: rspamd # provider type
config: # provider specific configuration
url: http://127.0.0.1:11333 # API url
timeout: 10s # API timeout
prov6: # provider name
type: typesafe # provider type
config: # provider specific configuration
apikey: some-api-key # typesafe apikey
model: jev-1.14.0 # jev model to use
maxsize: 50000 # optional message size limit for prompt (bytes)
whitelists: # trusted senders as regexp, not to be analyzed
whitelist1: # example with exact addresses
- ^.* <info@example\.com>$ # matches <info@example.com>
- ^.* <contact@domain\.com>$ # matches <contact@domain.com>
whitelist2: # example with only domain match
- ^.* <.*@example\.com>$ # matches for all @example.com addresses
- ^.* <.*@domain\.com>$ # matches for all @domain.com addresses
inboxes: # inboxes to be checked
- schedule: "*/5 * * * *" # schedule in cron format (when to execute spam analysis)
host: mail.domain.tld # imap host
port: 993 # imap port
tls: true # imap tls (false = unencrypted, no STARTTLS)
username: user@domain.tld # imap user
password: mypass # imap password
provider: prov1 # provider used for spam analysis
inbox: INBOX # inbox folder
spam: INBOX.Spam # spam folder
markread: true # mark message as read
minscore: 75 # min score to detect spam (0-100)
minage: 0h # min age of message
maxage: 15m # max age of message (messages in range are analyzed on every run)
whitelist: whitelist1 # whitelist to use, empty/missing = no whitelist