SA-AWL.RAW(1)

🌸 NAME 🌸

okay bestie so this is sa-awl β€” it's the little tool that lets you peek at and mess with SpamAssassin's auto-welcomelist db πŸ’– (yes, "welcomelist", that's the name, we don't argue with the name)


✨ SYNOPSIS ✨

sa-awl [--clean] [--dry-run] [--min n] [dbfile]

like, that's the whole vibe. flags first, file after. queen behavior πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So what does it actually do? It checks a SpamAssassin auto-welcomelist (AWL) database file, or cleans it out. That's it. That's the job. Check or clean. Iconic honestly.

You drop the filename in after all your options, and that argument is called dbfile. If you don't say anything, it just assumes:

$HOME/.spamassassin/auto-welcomelist

which is the default, no cap πŸ™ˆ


πŸŽ€ OPTIONS πŸŽ€

  • --clean β€” wipes out the AWL entries that barely ever get used. And if you wanna be picky about how barely, the --min switch is right there to set the threshold for what gets kept and what gets deleted. mutual decision, bestie 🫢
  • --dry-run β€” pair this with --clean and it won't actually delete anything, it'll just show you the infrequently-used AWL entries that are about to get the axe. Very "let me see the receipts first" of you. And yup, --min also works here to pick the threshold of what's kept vs deleted. πŸ‘‘
  • --min n β€” sets the threshold for entries being kept or deleted when --clean is in play. The default is 2, which means anything that's only ever been seen once gets yeeted into the void πŸ’€

🌈 OUTPUT 🌈

When it prints stuff, it prints stuff like this:

AVG  (TOTSCORE/COUNT)  --  EMAIL|ip=IPBASE

and here's a real example so you can see it in the wild:

0.0         (0.0/7)  --  dawson@example.com|ip=208.192
21.8        (43.7/2)  --  mcdaniel_2s2000@example.com|ip=200.106

okay let's decode this together, stay with me:

  • AVG β€” the average score ⭐
  • TOTSCORE β€” the total score of every mail we've seen from them so far
  • COUNT β€” how many messages we've seen from that sender
  • EMAIL β€” the sender's email address, duh
  • IPBASE β€” the AWL base IP address

Now, the AWL base IP address thing? It's a way to figure out roughly which IP address a sender keeps mailing from β€” approximate vibes only β€” but still hard for spammers to spoof. So like, fuzzy for us, annoying for them. Perfect. 🧚

The algorithm goes like this:

- take the last Received header that contains a public IP address -- namely
  one which is not in private, unrouted IP space.

- chop off the last two octets, assuming that the user may be in an ISP's
  dynamic address pool.

literally just: grab the last Received header with a public IP (not private, not unrouted IP space), then snip the last two octets off, because your girl might be sitting in an ISP's dynamic address pool πŸ“


fr fr: --dry-run on its own is just a little fashion statement. It's the --clean that makes it meaningful. Don't @ me.

and that's the whole page, bestie, you ate πŸ’– this was sa-awl from the User Contributed Perl Documentation, running on perl v5.40.1, dated 2026-07-23 β€” go forth and clean those AWL entries with main character energy πŸ‘‘βœ¨

πŸ“¦ where this page comes from