PostfixAdmin - web based virtual user administration interface for Postfix mail servers https://postfixadmin.github.io/postfixadmin/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
David Goodwin 7afc4a6a9e
Merge pull request #945 from VersusBG/patch-1
8 hours ago
.github/workflows move to use ubuntu 24.04 for github actions 1 month ago
ADDITIONS Update mailbox_remover.pl 8 hours ago
DOCUMENTS Update HASHING.md 4 months ago
VIRTUAL_VACATION Move noreply to conf definable variable 2 months ago
configs manaul merge in of verdigado:master (see #753) (MFA/TOTP support) 2 years ago
debian remove more references to sourceforge 3 months ago
languages Fix hardcoded table name mailbox_app_password 4 weeks ago
model Fix 404 when loading css etc. for admins 4 weeks ago
public Fix hardcoded table name mailbox_app_password 4 weeks ago
scripts scripts/postfixadmin-cli.php : see #385 - add to the current error reporting level, not trample all over it 1 month ago
templates template footer: remove update-check.php link - just link people to the github releases page 3 months ago
tests remove reference to _pacrypt_crypt (deadcode) 4 months ago
.gitignore Add Domain Key handling 3 years ago
.php-cs-fixer.dist.php PSR2 -> PSR12 formatting 3 years ago
CHANGELOG.TXT update changelog 4 weeks ago
GPL-LICENSE.TXT Initial Import in SourceForge 19 years ago
INSTALL.TXT docs(install): fix a typo for unarchived dir (#828) 1 year ago
LICENSE.TXT LICENSE.TXT: 15 years ago
README.md capitalisation 3 weeks ago
SECURITY.md Create SECURITY.md 4 years ago
common.php allow the TOTP qr code to render (relax Content Security Policy to allow img-src: self data) 4 months ago
composer-update.sh I know people say not to add vendor/ to git, but this is the --no-dev variant, and it should handle autoloading too ... 4 years ago
composer.json zf1 should be a required library, given it is required for the xmlrpc functionality 3 weeks ago
config.inc.php update docs + changelog to highlight pacol() function move into PFAHandler 3 months ago
functions.inc.php Fix hardcoded table name mailbox_app_password 4 weeks ago
index.php Add a index.php showing a note about the "public" directory 8 years ago
install.sh beautify 4 months ago
password_expiration.sql rename sql fields to just have mailbox.password_expiry and domain.password_expiry 7 years ago
phpunit.xml fix path 4 years ago
postfixadmin.my.cnf Better (aka safer) way to deal with authentication 7 years ago
psalm.xml manaul merge in of verdigado:master (see #753) (MFA/TOTP support) 2 years ago

README.md

GitHubBuild Coverage Status GitHub repo size IRC Chat - #postfixadmin

PostfixAdmin

An open source, web based interface for managing domains/mailboxes/aliases etc on a Postfix based mail server.

Integrates with :

  • Postfix
  • IMAP/POP3 server (e.g. Dovecot or Courier)
  • Database backend (choose one of: SQLite, MySQL or PostgreSQL)
  • Fetchmail (optional)

Features

  • Unlimited domains/aliases/mailboxes
  • Optional storage quota support
  • Optional password expiry (beta)
  • Multiple password hashing formats
  • Supports PostgreSQL, MySQL, MariaDB, SQLite database backends (choose one)
  • Supports retrieval of mail from a remote POP3 server (via fetchmail)
  • Vacation / Autoresponder / Out Of Office support
  • Users can login, change their password and/or setup a vacation (out of office) auto responder.
  • Integration with Squirrelmail or Roundcube (via plugins)
  • Optional XMLRPC based API
  • Supports TOTP challenges (and optional IP address based exemptions) for login
  • Supports Application Specific Passwords (where you can have multiple passwords for a mailbox - e.g. one for your mobile device, and a different one for your desktop)
  • Supports Domain Key (DKIM) storage

Some screenshots of Postfixadmin in action (as admin and user)

Hosting Requirements

  • Requires PHP 7.4+
  • Database (MySQL, PostgreSQL or Sqlite)
  • Requires Apache / Nginx webserver (that's capable of integration with PHP)

Releases

  • While you can install PostfixAdmin from 'git' using the 'master' branch, 'master' is our main development version. It may work. It may contain funky new exciting stuff. It may "eat your data".
  • If you want an easy life, use a published release - see: https://github.com/postfixadmin/postfixadmin/releases or its branch (e.g. postfixadmin_3.3)
  • Latest significant changes should be listed in the appropriate CHANGELOG.TXT file.
  • From 2025/06 we should be using SemVer releases (e.g. 4.0.1-beta1, and not postfixadmin-4.0.1-beta1 for tags etc)
  • Before a new release, try to remember to edit config.inc.php and change the version variable. Also update db_min_version in functions.inc.php if there were changes in upgrade.php.

Development Notes

Github actions is configured to run unit tests, once something is appropriately pushed, or * run vendor/bin/phpunit tests (but this will not test against different PHP versions).

You should be able to use ACT (https://github.com/nektos/act) to run the tests locally, this will require docker etc.

  • composer format - should fix styling issues (spaces etc in the code)
  • composer psalm - should detect some obvious errors (e.g. a typo in a function name, referencing an invalid class etc)
  • https://github.com/aqeltech/Dockerised-GUI-Mailserver
  • https://github.com/mailserver2/mailserver mailserver2/mailserver is a simple and full-featured mail server build as a set of multiple docker images. Features: Postfix, PostfixAdmin, Dovecot, Rspamd, Clamav, Zeyple, Sieve, Fetchmail, Rainloop, Unbound/NSD, Træfik, {Let's Encrypt,custom,Self-signed Certificate} SSL, Supports PostgeSQL, MySQL, (beta) LDAP backends. Automated builds on DockerHub and Integration tests with Travis CI