User Tools

Site Tools


start:howto:dovecot_plus_database_quota

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
start:howto:dovecot_plus_database_quota [2012/01/10 08:38]
aseques
start:howto:dovecot_plus_database_quota [2012/01/10 08:46]
aseques
Line 38: Line 38:
 More info about sieve syntax and usage: http://​wiki.dovecot.org/​LDA/​Sieve More info about sieve syntax and usage: http://​wiki.dovecot.org/​LDA/​Sieve
  
-==== Use domain alias as mail alias too ====+==== Use domain alias/​subdomain ​as mail alias ====
  
 By doing a small change in postfix configuration,​ we can use the domain alias as a mail ailas. By doing a small change in postfix configuration,​ we can use the domain alias as a mail ailas.
Line 75: Line 75:
         WHERE domain_aliasses.alias_name = '​%d'​ AND mail_users.mail_acc = '​%u'​         WHERE domain_aliasses.alias_name = '​%d'​ AND mail_users.mail_acc = '​%u'​
 </​code>​ </​code>​
 +
 +If you want the subdomains to be able to receive mail create this file:
 +**/​etc/​dovecot/​dovecot-sql-subdomain.conf** ​
 +with the following content:
 +
 +<​code>​
 +driver = mysql
 +connect = host=localhost dbname=ispcp user=ispcp_dovecot password=PASS_MAILRW
 +user_query = SELECT CONCAT('/​var/​mail/​virtual/',​ subdomain.subdomain_name,​ "​.",​ domain.domain_name,​ '/',​mail_acc) AS home, '​1001'​ AS uid, '​8'​ AS gid FROM (mail_users INNER JOIN subdomain ON mail_users.sub_id = subdomain.subdomain_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_acc='​%n'​ and concat(subdomain.subdomain_name,"​.",​domain.domain_name)='​%d';​
 +</​code>​
 +
 +If you want the domains alias to be able to receive mail:
 +**/​etc/​dovecot/​dovecot-sql-aliasdomain.conf** ​
 +with the following content:\\
 +(In the sql for user_query there are uids and gids '​hardcoded'​. The uid must be the uid of vmail user and gid the gid of the mail group. Maybe you have to change the defaults (1001/8))
 +
 +<​code>​
 +driver = mysql
 +connect = host=localhost dbname=ispcp user=ispcp_dovecot password=PASS_MAILRW
 +user_query = SELECT concat('/​var/​mail/​virtual/',​ domain_aliasses.alias_name,​ '/',​mail_acc) as home, '​1001'​ as uid, '​8'​ as gid FROM (mail_users INNER JOIN domain_aliasses ON mail_users.sub_id = domain_aliasses.alias_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_acc='​%n'​ and domain_aliasses.alias_name ='​%d';​
 +</​code>​
 +
 +You have to add in dovecot.conf (section "auth default"​):​
 +  userdb sql {
 +    args = /​etc/​dovecot/​dovecot-sql-subdomain.conf
 +  }
 +  userdb sql {
 +    args = /​etc/​dovecot/​dovecot-sql-aliasdomain.conf
 +  }
  
 ==== Automatically alert user if his quota exceeds a critical limit ==== ==== Automatically alert user if his quota exceeds a critical limit ====
Line 136: Line 165:
 **NOTE:** In the SQL query for user_query there are uids and gids '​hardcoded'​. The uid must be the uid of your vmail user and gid the gid of the mail group. Maybe you have to change the defaults (1001/8)) **NOTE:** In the SQL query for user_query there are uids and gids '​hardcoded'​. The uid must be the uid of your vmail user and gid the gid of the mail group. Maybe you have to change the defaults (1001/8))
  
-=== Configure Dovecot === 
- 
-If you want the subdomains to be able to receive mail: 
-**/​etc/​dovecot/​dovecot-sql-subdomain.conf** ​ 
-with the following content:\\ 
-(In the sql for user_query there are uids and gids '​hardcoded'​. The uid must be the uid of vmail user and gid the gid of the mail group. Maybe you have to change the defaults (1001/8)) 
- 
-<​code>​ 
-driver = mysql 
-connect = host=localhost dbname=ispcp user=ispcp_dovecot password=PASS_MAILRW 
-user_query = SELECT CONCAT('/​var/​mail/​virtual/',​ subdomain.subdomain_name,​ "​.",​ domain.domain_name,​ '/',​mail_acc) AS home, '​1001'​ AS uid, '​8'​ AS gid FROM (mail_users INNER JOIN subdomain ON mail_users.sub_id = subdomain.subdomain_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_acc='​%n'​ and concat(subdomain.subdomain_name,"​.",​domain.domain_name)='​%d';​ 
-</​code>​ 
- 
-If you want the domains alias to be able to receive mail: 
-**/​etc/​dovecot/​dovecot-sql-aliasdomain.conf** ​ 
-with the following content:\\ 
-(In the sql for user_query there are uids and gids '​hardcoded'​. The uid must be the uid of vmail user and gid the gid of the mail group. Maybe you have to change the defaults (1001/8)) 
- 
-<​code>​ 
-driver = mysql 
-connect = host=localhost dbname=ispcp user=ispcp_dovecot password=PASS_MAILRW 
-user_query = SELECT concat('/​var/​mail/​virtual/',​ domain_aliasses.alias_name,​ '/',​mail_acc) as home, '​1001'​ as uid, '​8'​ as gid FROM (mail_users INNER JOIN domain_aliasses ON mail_users.sub_id = domain_aliasses.alias_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_acc='​%n'​ and domain_aliasses.alias_name ='​%d';​ 
-</​code>​ 
/var/www/virtual/i-mscp.net/wiki/htdocs/data/pages/start/howto/dovecot_plus_database_quota.txt · Last modified: 2013/06/21 07:36 by aseques