Your Linux Data Center Experts

vPostMaster Release Notes

Version 1.80 -- Wed Apr 03, 2013

Fixing vpm-pgmaintain error reading ConnectStr.

Version 1.78 -- Thu Mar 07, 2013

Fixing Received parsing for systems without "email" module.
      (Reported by mattias)
Debian should not be running db-upgrade as "postgres" user.

Version 1.76 -- Wed Mar 06, 2013

Fixing unset cryptedPw error in user_view.php (Patch by Nataraj)
      This could result in the user being logged out if the password
      wasn't changed.
Detecting SASL authenticated senders as local.
      (Suggested by Charles Clarke)
CentOS/RHEL 6 setup script disables SELINUX.
Ubuntu 12.04 uses Dovecot SASL by default.
Generated passwords are much stronger.
Install script now tries to figure out EPEL file version.
Porting to Ubuntu 12.04.
Updating the install script for RHEL 6 EPEL URL (patch by Andrea Bussi)
Using vpostmaster-db config file for vpm-dbupgrade and vpm-pgmaintain.
      (Patch by Paul Mack)

Version 1.74 -- Mon Feb 20, 2012

Fixing bug in vpm-backup with not getting dovecot files.
Installer now enables submission port by default.
Support for CentOS 6.

Version 1.72 -- Thu Feb 16, 2012

A bug in the backup script causing database dumps to fail.
Fixing a bug producing "Error deleting domain: Array".

Version 1.70 -- Fri May 20, 2011

Fix a bug in resolveExtensionUser, debug was not being passed in.
      (Patch by Bussi Andrea)

Version 1.68 -- Mon Dec 06, 2010

If "From " line was stripped before vpm-pftransport, first line was dropped.
Making vpm-pgmaintain and vpm-backup not output errors to stdout if
      PostgreSQL isn't running or files are missing (useful for standby
      nodes of HA clusters).
Users can now have the extension character in their name, and the shortest
      matching account name will be used.  So, you could create a
      "" and it will work, unless you also have a
      "user" account (which would be preferred, with the extension "one").

Version 1.66 -- Mon Sep 20, 2010

Adding /var/lib/squirrelmail/prefs to the backed-up directories.
      (Suggested by Kevin Fenzi)

Version 1.64 -- Wed Sep 15, 2010

Fixing bug causing 'NoneType' object has no attribute 'cursor', reported by
      Mike Loseke.
Fixing a "list indices must be integers, not str" error reported by
      Etienne le Roux

Version 1.62 -- Sun Sep 12, 2010

Fixing "global name 'dbConnect' is not defined" traceback when using
      psycopg instead of psycopg2.

Version 1.60 -- Thu Sep 09, 2010

Fix for old database schema issue with new version of Postgres which
      results in "Query failed: ERROR: operator does not exist:
      text = integer at character [...]".  Reported by Kirby Ubben and
      Jorgen Haseth Laukhol
Adding code to work with psycopg2 as well as psycopg
Adjusted SPF Temperror handling.  Will now return DEFER_IF_PERMIT if checked
      at smtp time, which only happens when user has reject set.
      Returns DUNNO if checked during delivery (normally when a user has
      Quarantine set, but may also happen if DNS check fails during SMTP
      but succeeds during delivery stage. (Reported by Nataraj)
Changing the regex for detecting locally originated messages.
      (Reported by Charles Clarke)
If multiple spamassassin thresholds were set to the same value, the
      lexigraphically smallest one was selected.  So if both "quarantine"
      and "disabled" were set to the same threshold, disabled would be
      selected.  Now disabled ones are completely ignored, and if multiple
      thresholds are the same, the one appearing earlier in the web
      interface is used.  Reported by JW.
Added an option to restrict users from setting up forwards outside of 
      their domain. (Suggested by Jason Thies)
Changed forward mail loop detection routine to use a builtin function 
      to prepare the regular expression match.

Version 1.56 -- Tue Sep 29, 2009

Fixing a bug in the dbupgrade when run on older Postgres versions.

Version 1.54 -- Wed Sep 23, 2009

Do not preserve the "From " line when writing the message to the maildir.
      Reported by Brian Wood, based on problems reported by James Ramsey.
Backup script now saves off squirrelmail settings as well.
      Suggested by Brian Wood.
Adding more details of why clamav failed to run.  Suggested by Brian Wood.
Fixing a traceback during quota checking when a file goes away.
Fixing a spurious blank line in headers, reported by Charles Clarke.
Fixed gpg pubkey fingerprint in install-vpostmaster.
      (Reported by Zakir Shaikh)

Version 1.52 -- Wed Jun 24, 2009

Added /usr/sbin:/sbin to the path environment variable during vpm-wwwhelper.
	(Issue reported by Matt Tiner)
Made debian init script LSB-compliant by adding proper headers.
      (Issue reported by mattias)
Fixed a bug in %post section of RPM spec file that was preventing
      permissions from being added to the sudoers file.  (Issue 
      reported by Chris Crownheart)
Adding code to assign user spam settings based on default domain 
      settings when running vpmuser.  Also updated the database schema 
      to give required permissions.

Version 1.50 -- Tue May 05, 2009

Adding code to delete the domain directory when the domain is deleted.
      Now is a good time to make sure you are running backups.
      (Suggested by CyberLeo Kitsana)
Fixing a spelling mistake, reported by Bob Gobeille.
Fixing a bug in the postmap call when creating a new domain.
      (Reported by Jason Thies)
Allowing database passwords to be encrypted using MD5 or SHA format
      (with "$1$" or "$2$" prefix).
Detect clamdscan availability and use it if clamd is running.  (Suggested by
      CyberLeo Kitsana)
Now you can specify the clamscan command to use in the meta table
      "clamscancommand" row.  The default is "clamscan --stdout -".  It
      needs to be a command that reads the message from stdin and writes
      the clamav output to stdout.  In particular, it uses the presence of
      a line with "FOUND" in it to indicate that a virus was found.

Version 1.48 -- Wed Jan 07, 2009

Adding code so that Postfix doesn't need PostgreSQL support built in.
Tab-order patch to change it so that tabs go top to bottom rather than left
      to right.  Patch from CyberLeo Kitsana.
Adding support for plain-text passwords and authentication.
Added checks to updateto10 and updateto11 to check if already been run.  
      Added vpm-dbupgrade step to distribution-specific setup scripts.
Added additional options to vpmuser for setting up fowarding and 
	disabling local delivery.
Changed execution of queries in vpm-pgmaintain to separate vacuums to 
	their own execute statements to fix cron errors on Ubuntu 8.04 systems.
Bulk management of users (add/delete).
Modified vpm-wwwhelper to accept bulkadd command, calling vpmuser
      for each new or deleted user.  (Developed for Adams Internet)
Fixed a bug in vpmuser that prevented it from deleting users via the
      environment option. (Developed for Adams Internet)
vpm-wwwhelper now will call user-defined "add" and "delete" scripts in
      addition to the normal add/delete code.  Scripts are under
      /usr/lib/vpostmaster/etc/wwwhelper.d/{useradd,userdel}, and are run
      in order.  (Developed for Adams Internet)
Allow per-domain settings to prevent users from changing the anti-spam
      settings.  (Developed for Adams Internet)

Version 1.46 -- Tue Jul 01, 2008

Making all stand-alone tags name/value pairs.  (Patch by CyberLeo Kitsana)
Removing an href that doesn't exist for "Admin Users".  (Patch by
      CyberLeo Kitsana)
Fixing "Domain" versus "Account" mix-up in an error message (Patch by
      CyberLeo Kitsana)
Setting extra attributes to readonly for non-admins. (Patch by
      CyberLeo Kitsana)
Fixing the "usage" message (patch supplied by CyberLeo Kitsana)

Version 1.44 -- Wed Jun 18, 2008

Setting up Apache config file on Debian/Ubuntu for mailman.
Fixing issue with the squirrelmail config file being incorrectly written.
Adding support for Ubuntu Hardy.
Fixing spec file for man page installation file name.
Changing the schema to include the mailman system user name.
Code to get mydestination for new domain creation.
Fixing the e-mail address validation in the Forward field of the user page.
Adding "extra" values for non-mail attributes that can be set on users.
      This allows an administrator to set other administrative values on
      users such as "is a dial-up user" to use the vPostMaster database for
      other accounting-types of things.  Funded by Egyptian Internet.
Fixing exception logging if stdout pipe is broken.
Making SPF check compatible with SPF version 2.
Fixing bug: SPF if set to quarantine was actually doing reject.
      Reported by Wallace Winfrey
Changing the forward regex to allow upper and lower case characters, and be
      more RFC compliant.  Suggested by Dan Sully, regex by Scott Kleihege
Extension character can now be empty as well as + or -.
Adding setup-mailman to set up the mailman values in the meta table.
Fixing .spec code that adds vPostMaser to mailman group on upgrade of RPMs.

Version 1.42 -- Thu Dec 7, 2006

Added lines to vpm-backup to add sasl configuration to backup files.
Modified sasl configuration in setup-* scripts to only report PLAIN
Modified setup-fc3 script to always enable pop3 pop3s imap and imaps
	services for dovecot by default.
Added mailman as a dependency in the debian versions.
Changed debian phpX-pgsql dependency to allow php4 or php5 to fill it.
Adding "adminuser_delete.php" code to delete admin users.
Adding "vpostmaster" to the "mailman" group on RPM systems.
Install script wasn't properly removing sendmail.
Including a script to restart saslauthd if it's not running.
      saslauthd on some systems regularly dies, this is a work-around.
Adding script "vpm-cpvpopmail" to copy users from vpopmail.
User home directories are now deleted when the user is deleted, instead of
      before a new account is created with the same name.  Suggested by
      Jorgen Laukholm.
vpmuser with --delete would not work because of missing privileges in the
      database.  Reported by Jorgen Laukholm
Fixing a spelling mistake.  (Evelyn Mitchell)

Version 1.40 -- Wed Aug 09, 2006

Also includes a change to the Debian packages to make them
      platform-independent.  Reported by Barney Treadway
New accounts are subscribed to the Quarantine folder.
      Suggested by Jonathan Wilson

Version 1.38 -- Tue Jul 12, 2006

Changing wwwdb.conf in RPM spec file to be owned by vpostmaster instead of
      root.  Reported by Raul A. Gallegos.
Fixing debugging messages at level 0.  Reported by Raul A. Gallegos
Improvements to the INSTALL and scripts for Dapper.
Adding much more debugging information to "check" rules.
Writing a numeric value out to "/usr/lib/vpostmaster/etc/debug" will now
      enable debugging.  "echo 3 >/usr/lib/vpostmaster/etc/debug" for lots
      of debugging information.
Scripts now eliminate the message: could not change directory to "/root"
      Reported by Raul A. Gallegos

Version 1.36 -- Thu Jun 22, 2006

Added a backup script that runs every hour from cron to store the database
      and configuration files in /var/spool/vpostmaster
Fixing a traceback related to greylisting "global name 'psycop' is not
Creating ~vpostmaster/.spamassassin directory in setup scripts.
Setup scripts limiting entries to 5 concurrent processes.
Forwarding: Adding "--" to sendmail command before recipient arguments.
Forwarding: Adding more logging in the event of a sendmail non-zero
      exit-code.  Reported by Pete Humphrey.
Database connection failure now writes an easier to understand error.
      Reported by Eduardo Reitz
Patching all form field retrievals so that escaping is undone depending on
      the setting of magic_quotes_gpc.  Reported by Jonathan Wilson.

Version 1.34 -- Thu May 04, 2006

Accounts without local delivery enabled and forwarding to a single
      domain which is not in the current vPostMaster system will receive an
      error at SMTP time that the domain does not exist.
      Reported by Mail Server Monitoring System.
Release script will stop process if indentation is bad.

Version 1.32 -- Wed May 03, 2006

Indentation issues.  Reported by Scott Kleihege.

Version 1.30 -- Wed May 03, 2006

If an account was forwarding to another account and also had local
      delivery, the local delivery was not being done.  Reported by
      Fernando Novello
New "setup" scripts which can be re-run to fix problems.
      Contributed by Scott Kleihege
Changing RPM spec file to use "python-psycopg" to reflect FC5 Extras name.
Changing session variables to start with vpmsession_.
Scott Kleihege found a typo in the CSS.

Version 1.27 -- Wed Mar 22, 2006

There was a bug in the 1.26 release "vpm-dbupgrade" script which caused it
      to fail if no domain defaults were set.  This is a non-fatal error,
      and is corrected simply by upgrading to version 1.27.  Problem found
      and reported by Kevin Fenzi.
Fixing a bug in the release script that caused WHATSNEW file to be empty.

Version 1.26 -- Tue Mar 21, 2006

Raul A. Gallegos reported a bug when no delivery destination was specified.
      Caused a traceback in vpm-pftransport for "os.remove" of a file that
      was already removed.
Adding a recipe for backing up vPostMaster.
Changing ClamAV message from "exit_stats" to "exit_status".
Changing the schema to version 8.
Changing the domain defaults for "clamavaction" to "disabled" and
      "spfaction" to "reject".  "enabled", what they were before, is not a
      valid choice, so new users were having weird disconnects between what
      the web interface said and how the software acted.

Version 1.24 -- Mon Feb 13, 2006

More documentation from Evelyn Mitchell for the web interface.
Fixing the handling of extension addresses.
Adding vim folding codes to some parts of the code where it was missing.
Pass system meta-data to the message processing code.
Updating schema to version 7.
Importing psycopg into vpmsupp for use in exception handling.
      Fixes a traceback during greylist handling.  Reported by MTWAfrica.
Added X-Original-To: and Delivered-To: headers.

Version 1.22 -- Mon Dec 19, 2005

Splitting out the version string from code.php into version.php.
Fixing a permissions problem with the wwwdb.conf file.  The default setting
      was causing problems with the vpm-wwwhelper generating a warning on
      the creation of a new user:
         Error while calling useradd helper: [...] IOError: [Errno 13]
         Permission denied: '/usr/lib/vpostmaster/etc/wwwdb.conf'
         NOTE: Helper errors leave user in partially added state. You will
         need to delete and re-create the user after resolving the problem.
Making list views more pretty with colorized odd rows.

Version 1.20 -- Fri Dec 09, 2005

Control script updates for Debian and Ubuntu.
No changes for Fedora, just rolling to have the same version for RPM and
      Debian systems.

Version 1.18 -- Wed Dec 07, 2005

Nataraj pointed out that if enabled, greylisting in transport is
      quarantining under some unexpected circumstances.  I've changed it to
      only quarantine in transport when the greylisting action is
Removing the wwwdb.conf from the package and putting the conf-dist file in
Quarantined messages are no longer forwarded to users in the forward list.
      Local delivery is done to the quarantine folder, whether "local
      delivery" is set or not, but forwarding is ignored.
Added popup help documentation to the Settings pages. Questions, comments
      and more examples appreciated. Send to
      Evelyn Mitchell
Brian Cairns reported a NotImplemented exception was logged for his system.
      That should only be reported when a ClamAV action that is
      unrecognised is seen, and may indicate a bad value in the database.
      I changed the exception to a ValueError with information about the
      action that was requested, to make debugging easier.
Added a link to the mailing list on vpostmaster web interface menu.
Scott Kleihege found a problem with wwwhelper when running from vpmuser.
      It now reads the connect information from wwwdb.conf.
RPM spec file now will run vpm-dbupgrade on upgrades.
RPM spec file now restarts postfix on an upgrade.
The RPM spec file was reverting the mail_name back to Postfix on
   any subsequent upgrade.  Fixed.
Removing the wwwdb.conf file from RPM packaging.  If your file goes
      missing, you will need to run:
         mv /usr/lib/vpostmaster/etc/wwwdb.conf.rpmsave \
      to repair it.
Update check now displays a different message when a development version is
      being used.
adminuser_view was validating name differently than adminuser_create.  An
      admin user with digits in their name couldn't be updated because of

Version 1.16 -- Thu Nov 03, 2005

Found a bug in the resolveUser() function where it wouldn't properly
      resolve a local user to the destination account.
Spam subject prefix was getting added to non-spam messages.  (Reported by
      Aron Shtull Trauring)
Debugging information added to Greylisting checker.  (Patch contributed by
Greylisting would, for all remote message, update the greylist database
      entry twice, once during SMTP and once during delivery.  Nataraj
      contriuted a patch which only does the update if a previous update
      has not been done recently.  This will reduce database activity for
      heavily active users.
Web interface now shows the current version next to "Control Panel".
      (Suggested by Ted Clark)
Nataraj found a bug where postfix would, in the policy, pass a null sender,
      but in the transport would have changed it to
      "mailer-daemon@".  This caused greylisting to get confused
      and quarantine messages that had made it past greylisting.
Fixing a corrupted image.
If a ".procmailrc" file exists in a user home directory, procmail will be
      called to deliver the message for local folder delivery.  Note that
      you will need to explicitly set the DEFAULT variable in your
      procmailrc for delivery.
vpmuser is now using a connect string instead of the running user's
Moving vpm-pgmaintain into the "bin" directory from the "postfix"
The schema now changes table ownership to "vpostmaster".
The vpostmaster password was not getting saved in the setup script.
Web UI: Fields entered as "0" were sometimes treated as blank.  Fixed.
vpm-pfpolicy now traps and logs it's exceptions, since postfix does not.
Allow SpamAssassin to re-write the headers of the message.
Allow users to select if spam status headers should be added to the
      message during delivery.
Allow users to specify a subject prefix if the message is believed to be
Greylisting did not work when set to quarantine.  Fixed.  Found by
Changing the form validation in PHP to make better error descriptions in
      cases where the field is empty but required and for character limits.
SpamAssassin action can now include "accept" to unconditionally accept a
Allow SpamAssassin threshold to go down as low as -30.
Adding accessibility changes to help visually-impaired users.  Suggested by
      Raul A. Gallegos, largely implemented by Evelyn Mitchell.
Multiple simultaneous deiveries to the same box may result in a database
      concurrency error in the greylist table.  Trap and ignore this error.

Version 1.15 -- Wed Oct 12, 2005

Fixing a problem where users with quotas set cannot update their account
      settings and password because it exceeds their quota.  Reported by
      Raul A. Gallegos.
Changing the order of rule checks to: Envelope Rules, SPF, Greylist,
      ClamAV, SpamAssassin.
Changes to the web UI so that it is more obvious when an account is set up
      such that it discards all incoming e-mail.
Fixing a bug where the previous user selected still shows after creating a
      new domain.
Some loop optimizations for checking envelope rules.
Added regex envelope rules.  Prefix a rule with "regex:" to make it a
      regex, and "normal:" or no prefix to make it a normal string comparison.
All envelope rules which do not start with "regex" are now converted
      to lower-case in the web management interface.
Added a set of defaults for new systems.
Forward-only accounts in web interface were showing forward+local.
If incoming messages are *ONLY* being forwarded to a single other local
      vpostmaster address, internal "redirection" will happen instead of
      external forwarding.  This means that the destination accounts
      rules constrain the delivery.
Display the number of active users per domain, suggested by Joel Hoornbeek.
If checkers return anything but success, log it with DEBUG status.
Optional debugging of rules.  Currently, you have to modify
      so the "self.debug = debug" line reads "self.debug = 2" (or 1 for
      less debugging).
Fixing the regex for detecting locally generated messages.
      Reported by Ken Weinert.
Adding clamav to requirements in the spec file.
Converting the addresses to lower-case in vpm-pftransport.
      Fix supplied by Nataraj.
Added a status message about quarantining messages, suggested by Nataraj.
Fix for quick double insertions into the greylist database.
      Problem reported by Nataraj.
Modified the checkers to result in "DUNNO" if some of their required values
      are not set.  Problem reported by Nataraj.
Adding "permit_mynetworks" to recipient restrictions.
      Reported by Ken Weinert.

Version 1.14 -- Tue Jun 28, 2005

Resolving a bug where some SPF checks on domains which had no SPF record
      would reject all incomging mail from that domain.
Added debian startup script to replace saslauthd required symlink in
      /var/run that was removed by a different debian startup script.

Version 1.13 -- Mon Jun 20, 2005

Fixing a bug in checking the return-code from SPF, which sometimes wouldn't
      detect SPF telling it to abort.  Reported by Scott Kleihege
Changed the spec file so pre and post scripts always succeed.
Built Debian Unstable and Ubuntu Hoary Hedgehog packages.
Fixing setup-fc3 script so that it does the right config change for
      PostgreSQL version 8 and above.

Version 1.12 -- Sun May 16, 2005

Adding instructions for the SquirrelMail configuration.
The RPM now configures squirrelmail correctly.  Reported by Joel Hoornbeek.
Removing the unused checkboxes in the user lookup, and showing
      account forwarding information.  Reported by Joel Hoornbeek.
User list now also shows account type (forward only, forward+local, local).
Fixing a spec problem with FC2 not pulling the right dovecot release.

Version 1.11 -- Sun May 01, 2005

Forward field can now include multiple addresses.
Changed the way local lookups are done for greylisting to quarantine.
Greylisting and SPF is now disabled for messages from or
      messages locally forwarded.  Forwarded messages should be checked
      on the incoming account that forwards, not the destination account.

Version 1.09 -- Fri Apr 29, 2005

A bug in the local delivery caused 1.08 to fail on delivery.
Changed the post-install script to ignore the failure of the grep.

Version 1.08 -- Wed Apr 27, 2005

Trap exception when SPF fails.  Reported by Roger May.

Version 1.07 -- Fri Apr 22, 2005

Changing install process to set mail_name to vPostMaster
Adding instructions for FC2.
Removed the "Conflicts: postfix" from the spec file, relying on
      postfix+pgsql to conflict.
Adding the line "vpm-pftransport_destination_recipient_limit = 1" to in the install scripts and instructions.  This fixes a bug
      where multiple recipients in the same domain were causing a bounce.
      Reported by Eric Swanson

Version 1.06 -- Thu Mar 17, 2005

Improperly quoting the Forward To field caused SQL Errors on user create
      where Forward To was set.
Validation problem with Forward To field (reported by Tom Rhymes).
Setting system defaults was not properly clearing out the previous data.

Version 1.05 -- Mon Mar 14, 2005

Fixing the quoting of the /etc/sysconfig/saslauthd settings, reported by
      Tom Rymes.

Version 1.04 -- Fri Mar 04, 2005

Fixing a problem in the INSTALL and setup-fc3 scripts which prevented SMTP
   AUTH from being set up properly.  Please see the post to the mailing list
   ( for more information
   on fixing it.

Version 1.03 -- Sun Feb 20, 2005

Includes code to look up greylist-incompatible hosts which send non-spam
Man page for "vpmuser".
Added the beginnings of a database conversion script for use when doing

Version 1.02 -- Sun Feb 13, 2005

Adding a command-line tool for adding and removing users, "vpmuser".
Checkers in the transport are now called for both local and remote messages.
      Should reduce confusion, it confused me.
Changed the schema for Dovecot so that disabled users or users in disabled
      domains cannot login.
Fixed the INSTALL instructions based on review and changes to the SQL for
      detecting deactivated users and domains.
Making the wwwhelper chown the directories that are created if they are
      created as root.  Command-line tool may be run as root.
Changed the user_create quota form field.

Version 1.00 -- Tue Feb 08, 2005

Initial release.