SQL: Add a mail alias account

Attention

Check out the lightweight on-premises email archiving software developed by iRedMail team: Spider Email Archiver.

Warning

Create mail alias account with iRedAdmin-Pro

With iRedAdmin-Pro, you can easily add mail alias account by click menu: Add -> Alias in main navigation bar.

Create mail alias account with SQL command line

To create an mail alias account, you need to add SQL records in 2 sql tables. for example: create a mail alias account alias@mydomain.com and forward emails to two addresses someone@gmail.com and someone@test.com:

sql> USE vmail;

-- Create mail alias account
sql> INSERT INTO alias (address, domain, active)
                VALUES ('alias@mydomain.com', 'mydomain.com', 1);

-- Forward email to 'someone@gmail.com'
sql> INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
                      VALUES ('alias@mydomain.com', 'someone@gmail.com',
                              'mydomain.com', 'gmail.com',
                              1, 1);

-- Forward email to 'someone@test.com'
sql> INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
                      VALUES ('alias@mydomain.com', 'someone@test.com',
                              'mydomain.com', 'test.com',
                              1, 1);

NOTES:

Access policy

Attention

Access restriction requires iRedAPD plugin sql_alias_access_policy, please make sure it's enabled in iRedAPD config file /opt/iredapd/settings.py.

You can restrict which senders are allowed to send email to this mail alias account by adding proper policy name in SQL column alias.accesspolicy. For example:

sql> UPDATE alias SET accesspolicy='domain' WHERE address='alias@mydomain.com';

Available access policies:

Access Policy Name Comment
public no restrictions
domain all users under same domain are allowed to send email to this mail alias account.
subdomain all users under same domain and all sub-domains are allowed to send email to this mail alias account.
membersonly only members of this mail alias account are allowd.
moderatorsonly only moderators of this mail alias account are allowed.
membersandmoderatorsonly only members and moderators of this mail alias account are allowed.

How to assign a moderator

Moderators are email addresses stored in SQL table moderators. With iRedAPD-1.4.5 and later releases, it's ok to use *@domain.com as (one of) moderator for all users under mail domain 'domain.com'.

To assign user someone@gmail.com and someone@outlook.com as moderator of mail alias alias@mydomain.com:

sql> INSERT INTO moderators (address, moderator, domain, dest_domain)
                    VALUES ('alias@mydomain.com', 'someone@gmail.com', 'mydomain.com', 'gmail.com');

sql> INSERT INTO moderators (address, moderator, domain, dest_domain)
                    VALUES ('alias@mydomain.com', 'someone@outlook.com', 'mydomain.com', 'outlook.com');

See also