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 - ^.* $ # matches - ^.* $ # matches 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