User Management - SomethingWithHorizons/mailserver GitHub Wiki

Domains

Add

INSERT INTO `mailserver`.`domains` 
    SET `name` = 'example.org';

Update

UPDATE `mailserver`.`domains` 
    SET `name` = 'example.com' WHERE `name` = 'example.org';

:warning: All users addresses will be updated as well. Please check the aliases table manually.

Remove

DELETE FROM `mailserver`.`domains` 
    WHERE `name` = 'example.org';

:warning: All users and aliases linked to that domain will also be deleted!

List

SELECT * FROM `mailserver`.`domains`;

Users

Add

  1. Create a password hash for user
    doveadm pw -s SHA512-CRYPT
    
  2. Add user to database
    INSERT INTO `mailserver`.`users` 
        SET `domain` = 'example.org', `username` = 'john.doe', `password` = '<generated hash>';
    

Update password

UPDATE `mailserver`.`users`
    SET `password` = '<generated hash>' WHERE `domain` = 'example.org' AND `username` = 'john.doe';

Remove

DELETE FROM `mailserver`.`users`
    WHERE `domain` = 'example.org' AND `username` = 'john.doe';

List

SELECT * FROM `mailserver`.`users`;

Aliases

Add

INSERT INTO `mailserver`.`aliases`
    SET `domain` = 'example.org', `source` = '[email protected]', `destination` = '[email protected]';

:information_source: In order to add a catch all alias:

INSERT INTO `mailserver`.`aliases`
   SET `domain` = 'example.org', `source` = '@example.org', `destination` = '[email protected]';

Update

UPDATE `mailserver`.`aliases` 
    SET `target` = '[email protected]' WHERE `domain` = 'example.org' AND `source` = '[email protected]';

Remove

DELETE FROM `mailserver`.`aliases`
    WHERE `domain` = 'example.org' AND `source` = '[email protected]';

List

SELECT * FROM `mailserver`.`aliases`;