The format for defining a rule is as follows:
uri_detail SYMBOLIC_TEST_NAME key1 =~ /value1/i key2 !~ /value2/ ...
Supported keys are:
"raw" is the raw URI prior to any cleaning (e.g. "http://spamassassin.apache%2Eorg/").
"type" is the tag(s) which referenced the raw_uri. parsed is a faked type which specifies that the
raw_uri was parsed from the rendered text.
"cleaned" is a list including the raw URI and various cleaned versions of the raw URI
(http://spamassassin.apache%2Eorg/, https://spamassassin.apache.org/).
"text" is the anchor text(s) (text between <a> and </a>) that linked to the raw URI.
"domain" is the domain(s) found in the cleaned URIs, as trimmed to registrar boundary by
Mail::SpamAssassin::Util::RegistrarBoundaries(3).
"host" is the full host(s) in the cleaned URIs. (Supported since SA 3.4.5)
Example rule for matching a URI where the raw URI matches "%2Ebar", the domain "bar.com" is found, and
the type is "a" (an anchor tag).
uri_detail TEST1 raw =~ /%2Ebar/ domain =~ /^bar\.com$/ type =~ /^a$/
Example rule to look for suspicious "https" links:
uri_detail FAKE_HTTPS text =~ /\bhttps:/ cleaned !~ /\bhttps:/
Regular expressions should be delimited by slashes.
perl v5.40.1 2025-06-26 Mail::SpamAssa...ugin::URIDetail(3pm)