|
|
@@ -151,46 +151,4 @@ Here is an example of a JSON control block: |
|
|
|
} |
|
|
|
~~~ |
|
|
|
|
|
|
|
Moreover, [UCL](https://github.com/vstakhov/libucl) json extensions and syntax conventions are also supported inside the control block. |
|
|
|
|
|
|
|
## Legacy RSPAMC protocol |
|
|
|
|
|
|
|
For compatibility, rspamd supports legacy `RSPAMC` and also SpamAssassin `SPAMC` protocols. Though their usage is discouraged, these protocols can still be used as a last resort to communicate with rspamd from legacy applications. |
|
|
|
|
|
|
|
The RSPAMC dialog looks as follows: |
|
|
|
|
|
|
|
~~~ |
|
|
|
SYMBOLS RSPAMC/1.1 |
|
|
|
Content-Length: 2200 |
|
|
|
|
|
|
|
<message octets> |
|
|
|
|
|
|
|
RSPAMD/1.1 0 OK |
|
|
|
Metric: default; True; 10.40 / 10.00 / 0.00 |
|
|
|
Symbol: R_UNDISC_RCPT |
|
|
|
Symbol: ONCE_RECEIVED |
|
|
|
Symbol: R_MISSING_CHARSET |
|
|
|
Urls: |
|
|
|
~~~ |
|
|
|
|
|
|
|
The RSPAMC protocol also supports different commands: |
|
|
|
|
|
|
|
| Command | Description | |
|
|
|
| :-------| :----- | |
|
|
|
| CHECK | Check a message and output results for each metric, but do not output symbols. | |
|
|
|
| SYMBOLS | Same as `CHECK`, but output symbols. | |
|
|
|
| PROCESS | Same as `SYMBOLS` but also output the original message with inserted X-Spam headers. | |
|
|
|
| PING | Do not do any processing, just check rspamd state. | |
|
|
|
|
|
|
|
|
|
|
|
After the command, there should be one mandatory header - `Content-Length` - which defines a message's length in bytes, and optional headers (same as for HTTP). |
|
|
|
|
|
|
|
rspamd supports SpamAssassin's `spamc` protocol, and you can even pass rspamc headers in spamc mode, but the reply of rspamd in `spamc` mode is truncated to the "default" metric only with no options for symbols being displayed. Rspamc reply looks as follows: |
|
|
|
|
|
|
|
RSPAMD/1.1 0 OK |
|
|
|
Metric: default; True; 10.40 / 10.00 / 0.00 |
|
|
|
Symbol: R_UNDISC_RCPT |
|
|
|
Symbol: ONCE_RECEIVED |
|
|
|
Symbol: R_MISSING_CHARSET |
|
|
|
Urls: |
|
|
|
|
|
|
|
Moreover, [UCL](https://github.com/vstakhov/libucl) json extensions and syntax conventions are also supported inside the control block. |