Mail::...Razor2(3pm)

πŸ’– NAME πŸ’–

Mail::SpamAssassin::Plugin::Razor2 β€” bestie, this one does the Razor check on your messages. That's it. That's the job. ✨


πŸŽ€ SYNOPSIS πŸŽ€

loadplugin     Mail::SpamAssassin::Plugin::Razor2

One line. Chef's kiss. Load it and go. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so picture this: Vipul's Razor is a distributed, collaborative spam detection and filtering network, and it runs entirely on users submitting their spam. Yep β€” the girlies are all pitching in. πŸ™‹β€β™€οΈ

The detection bit works with signatures, and those signatures are really good at catching spam content that keeps mutating on you (you know the type β€” changes one character and thinks we won't notice πŸ’€). And the user input? It gets validated through reputation assignments. Main character energy for your inbox honestly.

Want the whole lore? Go peek at http://razor.sourceforge.net/ for more tea about Razor. πŸ«–


⭐ DEPENDENCIES ⭐

Razor2 is not gonna work without the Razor2::Client::Agent Perl module installed. That's the whole vibe check right there. Install it or it's giving nothing. 😭


πŸ‘‘ RULE DEFINITIONS πŸ‘‘

So here's how the magic happens: Razor2 calculates a signature for each part of a multipart message, then compares all those signatures against a database of known spam signatures. πŸ“š

The server comes back with a confidence value (0-100) for every single part of the message. And then β€” this is the good part β€” the part with the highest confidence value becomes the confidence value for the whole message. Winner takes all, periodt. πŸ†

The following eval rules are provided by this plugin:

full   RULENAME   eval:check_razor2()

Returns true if the confidence value of the message is greater than or equal to min_cf as defined in the Razor2 configuration file 'razor-agent.conf(1)'.

full   RULENAME   eval:check_razor2_range(<engine>,<min>,<max>)
  • <engine> β€” Engine number (4, 8 or '')
  • <min> β€” Minimum confidence value (0-100)
  • <max> β€” Maximum confidence value (0-100)

Returns true if the spam confidence value for the message is greater than or equal to <min> and less than or equal to <max>. If <engine> is not specified, the engine with the highest confidence value is used. No engine? We just pick the overachiever. 🌟


πŸ’œ USER SETTINGS πŸ’œ

  • use_razor2 (0|1) β€” (default: 1) Whether to use Razor2, if it is available.

🌈 ADMINISTRATOR SETTINGS 🌈

  • razor_fork (0|1) β€” (default: 1) Instead of running Razor2 synchronously, fork separate process for it and read the results in later (similar to async DNS lookups). Increases throughput. Considered experimental on Windows, where default is 0. So Windows besties get the 0 treatment, no cap. πŸ™ˆ
  • razor_timeout n β€” (default: 5) How many seconds you wait for Razor to complete before you go on without the results. Five seconds and then we're moving ON. ⏰
  • razor_config filename β€” Define the filename used to store Razor's configuration settings. Currently this is left to Razor to decide. We're not micromanaging her, she knows what she's doing. ✨
Heads up bestie: razor_fork is considered experimental on Windows, which is exactly why the default flips to 0 there. Don't come for me, it's in the docs. πŸ’€

and that's a wrap, babe πŸ’– This page is from perl v5.40.1, dated 2026-07-23, and it's the Mail::...Razor2(3pm) manpage β€” scream it, love it, read it again. Mwah. πŸŽ€πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from