vmailadmin/README.md

2.7 KiB

About VMail Controller

VmailController is a web management tool for an email system set up like described by Thomas Leister on https://thomas-leister.de/en/mailserver-debian-stretch/

Adaptations

This menagement system also includes the option to make "System accounts" - accounts that are not linked to a specific domain. This can be useful if you don't want a direct correlation between email address and email account credentials, to add an thin extra layer of security in case your users are prone to reuse their email password on different websites. This does require dovecot to take over delivery to local accounts, causing linux system accounts to be detached from the local mail system. (If all you're doing is setting up a mailserver, this should not pose too many problems)

To achieve this, you'd need a few small adaptations to the configuration described by Thomas Leister:

/etc/dovecot/dovecot.conf

Add the following to the file:

auth_default_realm=localhost

Optional: Change the line mail_home to

mail_home = /srv/vmail/mailboxes/%n@%d

/etc/postfix/main.cf

Add the following lines to the file in the appropriate places:

smtpd_sender_login_maps = mysql:/etc/postfix/sql/sender-login-maps.cf
myorigin=localhost
local_transport = $virtual_transport
virtual_mailbox_limit = 0

Database setup

The setup requires a few minor tweaks to the database, which are already set up in the application's main database config. So, do not follow the database setup described by Thomas, but instead use php artisan migrate to create the database.

Features

This management interface includes the following features

  • Full multi-admin multi-domain capability. Each validated user can get domains assigned to manage by an admin.
  • Multiple system administrators are possible
  • Configure system-wide accounts (@localhost) to separate login name from email address
  • Set-up mail accounts per domain
  • Configure aliases per domain - with multiple recipients
  • Portal to have users change their own email password

Setup

To setup the system, create a mysql user and database for yorur vmail system Then copy .env.example to .env and edit the configuration values in there

Then run

  • php artisan migrate to create the database.
  • Nginx with php-fpm (7.3 or greater)
  • MariaDB or MySQL
  • Redis server for cache

Create admin account

To create an account, after setting up the system, go to the homepage and click 'register' This creates an unverified account.

To setup this account as admin, do some modifications in the role_users table, to link your user id to the admin role.

Note: Should update this to have an artisan command or database seed