% RSPAMC(1) Rspamd User Manual # NAME `rspamc` - rspamd command line client # SYNOPSIS rspamc [*options*] [*command*] [*input-file*]... rspamc --help # DESCRIPTION `rspamc` is a simple client for checking messages using rspamd or for learning rspamd by messages. `rspamc` supports the following commands: * Scan commands: * `symbols`: scan message and show symbols (default command) * Control commands * `learn_spam`: learn message as spam * `learn_ham`: learn message as ham * `fuzzy_add`: add message to fuzzy storage (check `-f` and `-w` options for this command) * `fuzzy_del`: delete message from fuzzy storage (check `-f` option for this command) * `stat`: show rspamd statistics * `stat_reset`: show and reset rspamd statistics (useful for graphs) * `counters`: display rspamd symbols statistics * `uptime`: show rspamd uptime * `add_symbol`: add or modify symbol settings in rspamd * `add_action`: add or modify action settings Control commands that modifies rspamd state are considered as privileged and basically requires a password to be specified with `-P` option (see **OPTIONS**, below, for details). This depends on a controller's settings and is discussed in `rspamd-workers` page. `Input files` may be either regular file(s) or a directory to scan. If no files are specified `rspamc` reads from the standard input. Controller commands usually does not accept any input, however learn* and fuzzy* commands requires input. # OPTIONS -h *host[:port]*, \--connect=*host[:port]* : Specify host and port -P *password*, \--password=*password* : Specify control password -c *name*, \--classifier=*name* : Classifier to learn spam or ham (bayes is used by default) -w *weight*, \--weight=*weight* : Weight for fuzzy operations -f *number*, \--flag=*number* : Flag for fuzzy operations -p, \--pass : Pass all filters -v, \--verbose : More verbose output -i *ip address*, \--ip=*ip address* : Emulate that message was received from specified ip address -u *username*, \--user=*username* : Emulate that message was from specified user -d *user@domain*, \--deliver=*user@domain* : Emulate that message is delivered to specified user -F *user@domain*, \--from=*user@domain* : Emulate that message is from specified user -r *user@domain*, \--rcpt=*user@domain* : Emulate that message is for specified user \--helo=*helo_string* : Imitate SMTP HELO passing from MTA \--hostname=*hostname* : Imitate hostname passing from MTA (rspamd assumes that it is verified by MTA) -t *seconds*, \--timeout=*seconds* : Timeout for waiting for a reply (can be floating point number, e.g. 0.1) -b *host:port*, \--bind=*host:port* : Bind to specified ip address -j, \--json : Output formatted JSON \--ucl : Output UCL \--raw : Output raw data received from rspamd (compacted JSON) \--headers : Output HTTP headers from a reply \--extended-urls : Output URLs in an extended format, showing full URL, host and the part of host that was used by surbl module (if enabled). -n *parallel_count*, \--max-requests=*parallel_count* : Maximum number of requests to rspamd executed in parallel (8 by default) -e *command*, \--execute=*command* : Execute the specified command with either mime output (if `mime` option is also specified) or formatted rspamd output \--mime : Output the full mime message instead of scanning results only \--commands : List available commands # RETURN VALUE On exit `rspamc` returns `0` if operation was successfull and an error code otherwise. # EXAMPLES Check stdin: rspamc < some_file Check files: rspamc symbols file1 file2 file3 Learn files: rspamc -P pass learn_spam file1 file2 file3 Add fuzzy hash to set 2: rspamc -P pass -f 2 -w 10 fuzzy_add file1 file2 Delete fuzzy hash from other server: rspamc -P pass -h hostname:11334 -f 2 fuzzy_del file1 file2 Get statistics: rspamc stat Get uptime: rspamc uptime Add custom rule's weight: rspamc add_symbol test 1.5 Add custom action's weight: rspamc add_action reject 7.1 # SEE ALSO Rspamd documentation and source codes may be downloaded from . [rspamd-workers]: https://rspamd.com/doc/workers/