I run my own mail server with rspamd. It learns spam automatically based on the emails I move into the Spam folder and gives new incoming mails a probability score. If the probability of an email being spam is over a certain threshold, it gets moved into the Spam folder automatically or deleted entirely.
It works extremely well! But I also share my mailserver with a few friends and we have a collection of spam that spans ~20 years, which is a great dataset for training tools like these.