project is a simple daemon written in Perl, to allow email relay control
based on successful POP or IMAP logins. For information about the latest
release, see below.
Noteworthy changes in version 1.42
Version 1.42 was released on June 6, 2007. Here's a list of the most
- Improved how --reprocess works, so that we verify that the $logtime_pat variable
is set right, and we output a message when we get to the end of the logfile.
- Enhanced the startup log message.
- Fixed a bug in the "Match Many Patterns" config code.
- Improved the Cyrus $pat.
- Added a missing logout category (TIMEOUT) to Courier-POP/IMAP $out_pat.
Noteworthy changes in version 1.41
Version 1.41 was released on March 1, 2006. It was released to fix a problem
with the new timestamp parsing that failed to parse the date on March 1st.
Noteworthy changes in version 1.40
Version 1.40 was released on February 20, 2006. Here's a list of the most
- Enhanced the timestamp parsing of the main script. Previously there
were some hard-wired timestamp regular expressions in the main script that
can now be customized by setting $logtime_pat in the config file.
- Improved several patterns (e.g. dovecot, UW).
- Updated the contrib patch that enhances popa3d's logging: it's now for
the 1.0 release.
- A few improvements to the documentation, including some improved
sendmail info in the quickstart.
Noteworthy changes in version 1.39
Version 1.39 was released on January 7, 2006. Here's a list of the most
- Various log-file-matching $pat improvements in the config file.
- Added an $out_pat for UW POP/IMAP, which is useful if you use thunderbird
to access your mail via IMAP (or any other mail client that keeps IMAP
connections open for a long time).
- Some minor improvements to the logic that handles $out_pat.
- An improved popauth.m4 file that works with a sendmail configured to use
TLS with SMTP.
Noteworthy changes in version 1.38
Version 1.38 was released on July 13, 2005. Here's a list of the most
- Fixed a DB-locking bug if no IPs were found to be active in the startup
- Allow the DB-add and DB-delete actions to be overridden so that the
pop-before-smtp script can be easily used for other log-file scanning purposes.
For instance, the new ip-blocking-conf.pl file demonstrates how to use iptables
(or ipchains) to block IPs that are deemed to be undesireable.
Noteworthy changes in version 1.37
Version 1.37 was released on May 13, 2005. Here's a list of the most
- Pop-before-smtp can now handle a client that opens a connection and keeps
it open, such as Thunderbird's IMAP handling. To effect this, you need to
define an $out_pat in your config file. See the config file for an example
that works with Courier POP and IMAP. If you define an $out_pat for a
different server, please submit it for inclusion in the next release.
- The multi-line PID parsing can now handle verbose logging where the
$OK_pat does not immediately follow the $PID_pat. This requires defining a
$FAIL_pat (see the config file).
- Some bugs were fixed, such as some problems in the pattern for Dovecot
- See the ChangeLog for the rest of the
Noteworthy changes in version 1.36
Version 1.36 was released on October 3, 2004. Here's a list of the most
- Added a --version option.
- Mention the config file name in the --dump-config output.
- Improved the install/debug info, including better instructions for
configuring sendmail (including a contributed "hack" file).
- The usual pattern improvements and minor bug-fixes are also present.
Noteworthy changes in version 1.35
Version 1.35 was released on March 4, 2004. Here's a list of the most
- The --list option can be used to see all the IPs in the database.
- Configurable logfile-tail code, with a new built-in default procedure
(removing the dependency on File::Tail and resolving some
out-of-control CPU-use on some systems).
- A few more $pat improvements.
Noteworthy changes in version 1.34
Version 1.34 was released on January 6, 2004. Here's a list of the most
- More information is output for --dumpconfig and --debug.
- A few pop/imap pattern changes/additions.
- The example config for postfix no longer recommends the deprecated
check_relay_domains directive (use reject_unauth_destination on a modern
Noteworthy changes in version 1.33
Version 1.33 was released on March 28, 2003. Here's a list of the most
- Added some optional syslog code that will make it easier for people who
are getting no syslog output to fix the config.
- Added/improved a few log-file-matching patterns.
- Made it easier to add more multi-line-matching setups, and improved the
code that supports this to handle simultaneous login events that have their
lines interleaved (e.g. vm-pop3d and popa3d support uses this code).
Noteworthy changes in version 1.32
Version 1.32 was released on December 15, 2002. Here's a list of the most
- Improved the postconf-parsing code to recursively expand other postconf variables in the returned value(s). For instance, a filename can now contain $config_directory as the path.
- Added several new log-parsing patterns, including solidpop3d, teapop, and (unpatched) popa3d.
- Updated the sendmail comments/quickstart-info to contain instructions that have been verified by multiple sendmail users.
Noteworthy changes in version 1.31
Version 1.31 was released on August 31, 2002. Here's a list of the most
- Added config sections for sendmail and NDBM_File.
- Improved a few of the logfile-matching patterns.
- Added the --daemon=PIDFILE option to make starting up as a daemon easier.
- Added the --dumpconfig option to output some basic config info (useful for
verifying that your config file is doing what you think it should).
- Improved the expiration of the last pop user on a lightly-used machine.
- Fixed a few bugs, including a typo in the optional BerkeleyDB config.
Noteworthy changes in version 1.30
Version 1.30 was released on April 27, 2002. Here's a list of the most
- Configuration items were moved into a separate config file, allowing the main script to (hopefully) remain unchanged on your system.
- Made more things configurable, so you can:
All these things and more are even included as options in the provided config file.
- ... define complex log-file-matching rules (e.g. for vm-pop3d)
- ... override the tie/sync/flock functions (e.g. for BerkeleyDB, Courier SMTP, qmail, etc.)
- ... override the logging functions (e.g. for syslog)
- The new logto option/config-item lets pop-before-smtp manage the output
logfile (instead of using redirection) so we can close and reopen it (allowing
the file to be rotated). Just SIGHUP pop-before-smtp after you rotate the log.
- Improved the expiration code so that authorized IPs can't linger overly long when activity tapers off (but done is such a way that a busy system does not have any extra DB updates).
- Added a new testing option, --reprocess, that makes it easy to try out a new log-matching pattern.
- Fixed some bugs in the handling of the mynetworks (Postfix) setup (using include files in the mynetworks configuration now works, and the files can now
- Added some new user-contributed log-matching patterns.
- Updated the support files, including the init script, the spec file, the getfromcpan script, etc.
- Updated the docs.
The job that pop-before-smtp performs is also performed by other software,
such as DRAC. This daemon
differs from DRAC in its design target. DRAC is a client-server design, and
requires patching each pop or imap daemon that is going to participate.
Pop-before-smtp requires no mods to the other daemons, and uses no
client-server communication. So it's much, much simpler to install and
maintain, and it fails to address the needs of people with separate pop/imap
and smtp servers. Another system with some similarities to DRAC is WHOSON.