QmailAdmin written in PHP, for those who want to control Qmail+vpopmail directly from PHP.

  Mail Utilities
  Daemon interface
  PHP Extension
  System Library



php_vpopmaild - PHP extension to access the vpopmail library.

The PECL vpopmail extension extended to provide quite a few new functions which allow a program like QmailAdmin to be written in PHP. This only works with a patched version of the latest development code. Once the patch has been merged, and added to at least the MySQL back end, I will submit it back to PECL. [1]

I will also write an object that matches the vpopmaild-php object so pMailAdmin can use either method to control vpopmail.
Changes by Rick Widmer

1. php_vpopmail.c 66,68:  Force mode 2 on HAVE_VPOPMAIL_API because the
current version check seems broken, and did not set the right value for
vpopmail 5.4.  I cheated and just forced the value.  The version check
should be fixed, and some of the stuff I am adding will only work with
the latest version of vpopmail.  (Released 1 Feb 2004)

2.  vpopmail_auth_user now returns a vqpasswd structure converted into
a PHP array if the authentication succeeds.  It still returns false on
failure, so a simple true/false check will still work, but you can also
record info about the user, like the long name.  Try a print_r() on the
return value to see what you get.

3.  Add vpopmail_get_limits, vpopmail_set_limits, vpopmail_del_limits,
    vpopmail_lastauth_get, vpopmail_lastauth_set, vpopmail_lastauthip_get,
    vpopmail_ip_map_get, vpopmail_ip_map_add, vpopmail_ip_map_del,
    vpopmail_ip_map_show, vpopmail_auth_getpw, vpopmail_auth_getall. 

4.  Remove domainadd, domaindel and domain_alias_add.

5.  Change the order of parameters so $Domain is always first in every
function call.  If needed $User, the user or incoming email address
you are working on.

NOTE:  domainadd, domaindel and domain_alias_add do not work.  use
the vpopmail programs instead.  The problem is permissions when updating
/var/qmail/users/* and signaling qmail.  The vpopmail user can't do that
so it can't be done directly under apache.  I am looking for loopholes...

[1] If you want to submit this to PECL, please look at the items in TODO first. I don't mind, but don't consider it complete enough yet.

©2004 - Rick Widmer
Released under the PHP License Logo