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
Previous revision
start:howto:dovecot_plus_database_quota [2013/06/10 09:32]
aseques
start:howto:dovecot_plus_database_quota [2013/06/21 07:36] (current)
aseques removed the subdomain part since it didn't work and isn't of much interest
Line 4: Line 4:
 The required dovecot version is now 1.2 (squeeze'​s default) or newer. The required dovecot version is now 1.2 (squeeze'​s default) or newer.
  
-===== Changes from standard mail setup in imscp ===== +==== Changes from standard mail setup in imscp ==== 
-  * Alias and subdomains ​can be used as a full mail domains+  * Alias can be used as a full mail domains
   * Global sieve filtering (already enabled by default but without config)   * Global sieve filtering (already enabled by default but without config)
  
-===== Reasons to use dovecot ​=====+==== Reasons to use dovecot ====
  
   * You can do server-side filtering with sieve (for example saving spam to junk folder)   * You can do server-side filtering with sieve (for example saving spam to junk folder)
Line 20: Line 20:
 Please report any bugs/​hints/​whatever in the following board thread: Please report any bugs/​hints/​whatever in the following board thread:
 http://​forum.i-mscp.net/​showthread.php?​tid=61 http://​forum.i-mscp.net/​showthread.php?​tid=61
-===== Replace Courier with Dovecot ​=====+==== Replace Courier with Dovecot ====
  
 You can do it by re-running the installer and changing the default imap server when asked you can choose between courier or dovecot. You can do it by re-running the installer and changing the default imap server when asked you can choose between courier or dovecot.
  
-===== Optional features ===== +===== Global sieve filtering ​=====
- +
-==== Global sieve filtering ====+
  
 Dovecot will look for the global sieve script located in /​etc/​dovecot/​sieve/​dovecot.sieve,​ it can be edited to suit your needs with more functionality. Dovecot will look for the global sieve script located in /​etc/​dovecot/​sieve/​dovecot.sieve,​ it can be edited to suit your needs with more functionality.
Line 41: Line 39:
 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/​subdomain ​as a mail alias ====+===== Use domain alias as a 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.
 Being example2.com an alias of example1.com,​ whenever we create a mailbox in example1.com the same mailbox in example2.com becomes a redirection. Being example2.com an alias of example1.com,​ whenever we create a mailbox in example1.com the same mailbox in example2.com becomes a redirection.
 So creating [email protected] will also receive the mail from [email protected] automatically. That can be used when a customer don't want the hassle of managing two mail domain (and having to set manually every mail address two times). So creating [email protected] will also receive the mail from [email protected] automatically. That can be used when a customer don't want the hassle of managing two mail domain (and having to set manually every mail address two times).
 +
 +
 +==== The changes we have to do in postfix ====
 +
 +In the file main.cf (proposed changes are for the template), from:
 +  virtual_mailbox_domains = hash:​{MTA_VIRTUAL_DMN_HASH}
 +  virtual_alias_maps ​          = hash:​{MTA_VIRTUAL_ALIAS_HASH}
 +
 +To: 
 +
 +  #​virtual_mailbox_domains = hash:​{MTA_VIRTUAL_DMN_HASH}
 +  virtual_mailbox_domains ​     = mysql:/​etc/​postfix/​mysql_virtual_domains.cf
 +  ​
 +  #​virtual_alias_maps ​          = hash:​{MTA_VIRTUAL_ALIAS_HASH}
 +  virtual_alias_maps ​          = hash:​{MTA_VIRTUAL_ALIAS_HASH},​ mysql:/​etc/​postfix/​mysql_virtual_forwards.cf
 +
 +
 +
  
 /​etc/​postfix/​mysql_virtual_domains.cf /​etc/​postfix/​mysql_virtual_domains.cf
Line 56: Line 72:
                 INNER JOIN domain ​ ON domain_aliasses.domain_id=domain.domain_id ​                 INNER JOIN domain ​ ON domain_aliasses.domain_id=domain.domain_id ​
                 WHERE domain.domain_status='​ok'​                 WHERE domain.domain_status='​ok'​
 +                        AND domain_aliasses.alias_status='​ok'​
                         AND domain.domain_mailacc_limit > '​-1'​                         AND domain.domain_mailacc_limit > '​-1'​
                         AND domain_aliasses.alias_name='​%s'​)                         AND domain_aliasses.alias_name='​%s'​)
Line 77: Line 94:
         INNER JOIN domain_aliasses ON domain.domain_id = domain_aliasses.domain_id         INNER JOIN domain_aliasses ON domain.domain_id = domain_aliasses.domain_id
         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>​ 
- 
-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=imscp user=imscp_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>​ </​code>​
  
Line 108: Line 115:
   }   }
  
-===== Frequent issues ​=====+===== Deprecated documentation (pending to be purged) ​===== 
 + 
 +**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)) 
 ==== Adapt postfix master.cf ==== ==== Adapt postfix master.cf ====
  
Line 129: Line 139:
     flags=DROhu user=vmail:​mail argv=/​usr/​libexec/​dovecot/​deliver -f ${sender} -d ${recipient}     flags=DROhu user=vmail:​mail argv=/​usr/​libexec/​dovecot/​deliver -f ${sender} -d ${recipient}
  
-===== Older documentation (pending to be purged) ===== 
- 
-**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)) 
/var/www/virtual/i-mscp.net/wiki/htdocs/data/attic/start/howto/dovecot_plus_database_quota.1370856723.txt.gz · Last modified: 2013/06/10 09:32 by aseques