Yes, I have been able to get this working. I was a little confused by the directions but the key is understanding that SM needs to communicate to rspamd on the 11334 port. To do that, the SM IP address must be whitelisted, because it is otherwise blocked. Yes 11334 is the same as the website which is why this seems odd.
I found that with SM set to communicate on 11333, it worked on the spool, but the /learnspam and /learnham endpoints did not work. Apparently those are used by the cron that runs ever 5 minutes and sends spam and ham samples to rspamd. So to get this to work, SM must be set to use 11334 and communication from SM to rspamd must be whitelisted.
I am using a private network, so in my case, 10.0.0.8 SM server communications to 10.0.0.9 rspamd server.
I found that I had to get rspamd to listen on more than just localhost so that I could establish communication from my SM server, so I changed the binding in /etc/rspamd/rspamd.conf (which had been "localhost:11334"):
bind_socket = "*:11334";
To check, you can curl your rspamd server from SM:
curl http://10.0.0.9:11334/learnspam
If this communication works, it will say:
{"error":"Empty body is not permitted"}
In my case, it initially said not authorized. So, in /etc/rspamd/local.d/worker-controller.inc you must whitelist the IP address of your SM mail server. Thus add:
secure_ip = "10.0.0.8";
With that done I restarted the spamd service:
sudo systemctl restart rspamd
Then I marked some spam, and waited while tailing the log file:
tail -f /var/log/rspamd/rspamd.log
tail -f /var/log/rspamd/rspamd.log | grep [spam email here]
Finally, you can confirm that the keys have been added to redis:
redis-cli keys "*"
The web UI also shows them as "Learns" under the Bayesian statistics widget.