Mail::...oneypot(3pm)
πΈ Mail::...oneypot(3pm) πΈ
okay bestie, welcome to the manual page for Mail::...oneypot(3pm) β it's a User Contributed Perl Documentation situation, and honestly? it's giving trap queen but for spam bots. π
β¨ NAME β¨
Mail::MtPolicyd::Plugin::Honeypot β it's an mtpolicyd plugin whose whole job is creating a honeypot. yes. a honeypot. she lures them in. π―π¦
β¨ VERSION β¨
version 2.05 β that's the one, that's the girl. β
β¨ DESCRIPTION β¨
so the Honeypot plugin literally creates a honeypot to trap IPs that be sending mail to unused recipient addresses. like, addresses that nobody owns. if you're mailing one of those? you're not a real person, you're a bot, and you've been caught. periodt. π
the catch (and it's not really a catch, it's just the whole setup) is that you have to define those unused recipient addresses as honeypots yourself. the plugin doesn't magically know. you tell it via the recipients and recipients_re parameters. iykyk. π«Ά
every single time an IP tries to send a mail to one of these honeypots:
- the message gets rejected if
modeis'reject' - an scoring is applied
- and the IP gets added to a temporary IP blacklist until a timeout is reached (that's the
expireparameter, bestie)
and all the IPs sitting on that blacklist? also rejected if mode is 'reject', and scoring is applied to them too. once you're on the list, you're on the list. no takebacks. π
β¨ EXAMPLE β¨
here's what it looks like in the wild, copy it exactly, don't be creative:
<Plugin honeypot>
module = "Honeypot"
recipients = "bob@company.com,joe@company.com"
recipients_re = "^(tic|tric|trac)@(gmail|googlemail)\.de$"
</Plugin>
see? bob and joe are honeypots now. rip to bob and joe. π
β¨ PARAMETERS β¨
every single knob, bestie, no skips:
(uc_)enabled(default:on) β turn this check on or off. that's it, that's the whole vibe.score(default: empty) β applies a score to the message if it was sent to a honeypot address, or if it already got added to the honeypot before by sending a mail to a honeypot. double dipping, kind of iconic.mode(default:reject) β the default behaviour is returning a reject.
change it to 'passive' if you just want scoring and no rejection. sometimes you wanna watch, not touch. π
recipients(default:'') β a comma separated list of recipients to use as honeypots.recipients_re(default:'') β a comma separated list of regular expressions to match against the recipient, to use them as honeypots. regex girlies rise. π§reject_message(default:'trapped by honeypod') β the string that gets returned with the reject action. (yes it sayshoneypod. no we are not fixing it. she's perfect. π)expire(default:7200(2h)) β time in seconds until theclient_ipis removed from the honeypot. two whole hours of timeout, that's a long grudge ngl.Plugin(default: empty) β execute this plugin when the condition matched.
heads up bestie:modeis'reject'by default, so if you flip nothing and just plug this in, people are getting rejected. if you only want the score, you gotta go'passive'. don't say i didn't warn you. π
β¨ AUTHOR β¨
Markus Benning <ich@markusbenning.de> β thank you king π
β¨ COPYRIGHT AND LICENSE β¨
This software is Copyright (c) 2014 by Markus Benning <ich@markusbenning.de>.
This is free software, licensed under:
The GNU General Public License, Version 2, June 1991
okay that's the whole page, you ate that. π«Άβ¨
cute little sign-off: this was perl v5.38.2, dated 2024-05-26, and the manual name on the tin is Mail::...oneypot(3pm). mwah. ππ
π¦ where this page comes from
- debian trixie: mtpolicyd 2.05-1.2 Β· GPL-2.0-only
- ubuntu questing: mtpolicyd 2.05-1.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms