Apache::Qpsmtpd(3pm)

πŸ’– Apache::Qpsmtpd πŸ’–

okay bestie, so this is Apache::Qpsmtpd β€” the manual page for it, fr. It's a mod_perl-2 connection handler for qpsmtpd. yes. Apache. doing SMTP. we love a crossover episode ✨


🌸 SYNOPSIS 🌸

here's the whole vibe, copy-paste ready:

Listen 0.0.0.0:25 smtp
AcceptFilter smtp none
## "smtp" and the AcceptFilter are required for Linux, FreeBSD
## with apache >= 2.1.5, for others it doesn't hurt. See also
## http://httpd.apache.org/docs/2.2/mod/core.html#acceptfilter
## and http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen

LoadModule perl_module modules/mod_perl.so

<Perl>
use lib qw( /path/to/qpsmtpd/lib );
use Apache::Qpsmtpd;
$ENV{QPSMTPD_CONFIG} = "/path/to/qpsmtpd/config";
</Perl>

<VirtualHost _default_:25>
PerlModule Apache::Qpsmtpd
PerlProcessConnectionHandler Apache::Qpsmtpd
# can specify this in config/plugin_dirs if you wish:
PerlSetVar qpsmtpd.plugin_dirs /path/to/qpsmtpd/plugins
PerlSetVar qpsmtpd.loglevel 4
</VirtualHost>
heads up queen: "smtp" and the AcceptFilter are required for Linux and FreeBSD with apache >= 2.1.5, and for everybody else it doesn't hurt. the links to the docs are right there in the comments, iykyk 🫢

and listen, you can absolutely run multiple instances of Qpsmtpd on the same server, you just set this:

$ENV{QPSMTPD_CONFIG} = "USE-VIRTUAL-DOMAINS";

then inside each VirtualHost you point at that instance's config directory like so:

PerlSetVar qpsmtpd.config_dir /path/to/qpsmtpd/config

and boom πŸ’… β€” several completely different configurations, all vibing on the same server at the same time. main character energy fr.


πŸ¦‹ DESCRIPTION πŸ¦‹

so what does this thing actually do? It implements a mod_perl/apache 2.0 connection handler that literally turns Apache into an SMTP server using Qpsmtpd. yes really. Apache said "i contain multitudes" 😭

It also lets you set single-valued config options β€” loglevel from up above is the example β€” by using PerlSetVar inside httpd.conf. cute, right?

⚠️ okay so important: this module should be considered beta software because it's not yet widely tested. not me being honest!! but ALSO β€” it's currently the fastest way to run Qpsmtpd, so if performance matters to you, bestie, this is the one you want. periodt. πŸ‘‘

πŸ’€ BUGS πŸ’€

Probably a few. yeah. we're being real here πŸ™ˆ

make sure you test your plugins carefully. like, actually. please. for me.

The Apache scoreboard (/server-status/) mostly works and shows connections, but ngl it could do with some enhancements specific to SMTP. it's giving "works but could be more iconic."


🌈 AUTHOR 🌈

Matt Sergeant, <matt@sergeant.org> 🫢

Some credit goes to <mock@obscurity.org> for Apache::SMTP, which gave me the inspiration to do this. And <peter@boku.net> added the virtual host support. legends, all of them πŸ’œ


and that's the whole page, bestie!! this was Apache::Qpsmtpd(3pm) from the User Contributed Perl Documentation, running on perl v5.40.1 and dated 2025-03-21. slay, go configure your SMTP server inside a webserver like the absolute icon you are πŸŒΈπŸ’…βœ¨

πŸ“¦ where this page comes from