Mail::...::GeoDB(3pm)

πŸ’– Mail::...::GeoDB πŸ’–

okay bestie, so this is Mail::SpamAssassin::GeoDB β€” the unified interface for geoip modules. it's giving "one ring to rule them all" but for geoip backends 🌍✨

it's part of the User Contributed Perl Documentation, and honestly? she's a whole vibe. πŸ’…


🌸 NAME 🌸

Mail::SpamAssassin::GeoDB β€” unified interface for geoip modules πŸ—ΊοΈπŸ’–

like, one interface. many geoip modules. no cap. 🫢


✨ DESCRIPTION ✨

so here's the tea β˜• β€” plugins have to signal the SA main package about which modules they want loaded. that's the whole system, bestie. you tell main what you want, main goes and gets it. iconic delegation honestly πŸ‘‘

the supported modules are:

  • GeoIP2 🌐
  • Geo::IP 🌍
  • IP::Country::DB_File πŸ“
  • IP::Country::Fast ⚑

these are the only ones on the guest list, fr fr. πŸŽ€

and here's how a plugin actually asks for them β€” look at this little snippet:

package Mail::SpamAssassin::Plugin::MyPlugin; sub new {

...
$self->{main}->{geodb_wanted}->{country} = 1;
$self->{main}->{geodb_wanted}->{isp} = 1; )

so you set country to 1 if you want country data, isp to 1 if you want isp data β€” and you're just dropping those into $self->{main}->{geodb_wanted}, which is giving very much "main character energy" for a hash key ngl πŸ˜­πŸ’œ

⚠️ heads up bestie: (internal stuff still subject to change) β€” so don't get too attached to the exact API shape, she's still growing 🌱 lowkey a situationship, don't build your whole house on it πŸ™ˆ

πŸ’Œ SEE ALSO πŸ’Œ

...okay there isn't one listed here, bestie, that's just me being dramatic. the page ends right there. 🌈


that's the whole page, and yes it's short, but she ate and left no crumbs πŸ’…βœ¨

this gem lives in Mail::...::GeoDB(3pm) β€” written by the lovely humans of User Contributed Perl Documentation, shipped with perl v5.40.1, dated 2026-07-23. go off, queen πŸ‘‘πŸŒ·πŸ’–

πŸ“¦ where this page comes from