PostfixAdmin - web based virtual user administration interface for Postfix mail servers https://postfixadmin.github.io/postfixadmin
  • PHP 76.8%
  • Go Template 10.3%
  • Perl 6.2%
  • Shell 5.8%
  • Python 0.7%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Rodrigo Cortés Cano aa8b4e1f31
Spanish (es.lang) translation updates (#1116)
thanks @TrapoSAMA
2026-08-16 12:05:36 +01:00
.github/workflows Harden language catalog repair and syntax validation (#1114) 2026-08-12 09:07:15 +01:00
ADDITIONS Clarify sudoers rules across optional hook sets (#1082) 2026-07-19 19:38:09 +01:00
configs Address forwarding editor review feedback 2026-07-22 18:13:16 +00:00
debian Improve native (.deb) packaging for Debian/Ubuntu 24.04 (#1041) 2026-06-08 09:06:44 +01:00
DOCUMENTS Document optional Dovecot mail deletion logging (#1111) 2026-08-11 09:08:03 +01:00
languages Spanish (es.lang) translation updates (#1116) 2026-08-16 12:05:36 +01:00
model security updates (smarty, phpunit) 2026-08-16 10:28:44 +01:00
public Fix password expiration handling and visibility (#1109) 2026-08-10 09:19:35 +01:00
scripts Use native booleans for prepared SQL params; stop binding db_get_boolean() values (#1019) 2026-04-23 19:28:01 +01:00
templates Fix password expiration handling and visibility (#1109) 2026-08-10 09:19:35 +01:00
tests Harden language catalog repair and syntax validation (#1114) 2026-08-12 09:07:15 +01:00
VIRTUAL_VACATION Move noreply to conf definable variable 2025-08-19 18:33:46 +01:00
.gitignore Improve native (.deb) packaging for Debian/Ubuntu 24.04 (#1041) 2026-06-08 09:06:44 +01:00
.php-cs-fixer.dist.php PSR2 -> PSR12 formatting 2022-06-28 13:46:11 +01:00
CHANGELOG.TXT update CHANGELOG.TXT 2026-08-03 21:17:01 +01:00
common.php security updates (smarty, phpunit) 2026-08-16 10:28:44 +01:00
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 ... 2021-10-22 22:29:26 +01:00
composer.json security updates (smarty, phpunit) 2026-08-16 10:28:44 +01:00
config.inc.php Fix password expiration handling and visibility (#1109) 2026-08-10 09:19:35 +01:00
functions.inc.php Fix password expiration handling and visibility (#1109) 2026-08-10 09:19:35 +01:00
GPL-LICENSE.TXT Initial Import in SourceForge 2007-03-24 07:27:00 +00:00
index.php Add a index.php showing a note about the "public" directory 2018-04-26 21:33:11 +02:00
INSTALL.md rename INSTALL.TXT to INSTALL.md 2026-01-28 09:50:26 +00:00
install.sh Merge pull request #957 from postfixadmin/psalm-fixes 2026-02-11 20:53:07 +00:00
LICENSE.TXT LICENSE.TXT: 2011-04-24 16:15:21 +00:00
phpunit.xml Add tests for db_where_clause() and db_delete() with additional params (#1021) 2026-04-22 13:41:47 +01:00
psalm.xml remove phpVersion attribute from psalm which caused it to fail to see newer style PHP code and incorrectly error 2026-03-31 06:18:55 +01:00
README.md README: Typo fix db_min_version -> min_db_version 2026-08-09 17:54:08 +02:00
SECURITY.md Create SECURITY.md 2021-08-02 20:27:17 +01:00

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 8.2+ (master), if you need support for older PHP versions, try the 3.3 branch which supports PHP 7.0 and up.
  • 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 /stable release - see: https://github.com/postfixadmin/postfixadmin/releases or its branch (e.g. postfixadmin_4.0)
  • 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 min_db_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