iredmail-doc/en_US/howto/sql.create.mail.alias.md

101 lines
3.6 KiB
Markdown

# SQL: Add a mail alias account
[TOC]
!!! warning
* This document is applicable to iRedMail-0.9.7 and later releases.
* Here's [doc for iRedMail-0.9.6 and earlier releases](./sql.create.mail.alias-20170701.html).
## 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.
![](./images/iredadmin/maillist_create.png)
## 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`:
```mysql
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__:
* Please always use lower cases for email addresses.
* If destination address is a mail user under domain hosted on localhost,
it must exist. Otherwise emails sent to alias account will be bounced after
expanded to destination addresses.
## 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 `alias_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 alias_moderators (address, moderator, domain, dest_domain)
VALUES ('alias@mydomain.com', 'someone@gmail.com', 'mydomain.com', 'gmail.com');
sql> INSERT INTO alias_moderators (address, moderator, domain, dest_domain)
VALUES ('alias@mydomain.com', 'someone@outlook.com', 'mydomain.com', 'outlook.com');
```
## See also
* [Create mailing list for OpenLDAP backend](./ldap.add.mail.list.html)