Addition/Shared folders with dovecot 1.2
From iRedMail
(Difference between revisions)
| Line 9: | Line 9: | ||
= Notes = | = Notes = | ||
* This article was written with a CentOS-based system in mind. Adapt it for your system. | * This article was written with a CentOS-based system in mind. Adapt it for your system. | ||
| + | * You must have a good knowledge of the internal workings of iRedMail, mail services and so on. | ||
= Step-by-step configuration = | = Step-by-step configuration = | ||
| Line 38: | Line 39: | ||
{{cfg||<pre> | {{cfg||<pre> | ||
dict { | dict { | ||
| + | [...] | ||
acl = mysql:/etc/dovecot-acl-shared-dict.conf | acl = mysql:/etc/dovecot-acl-shared-dict.conf | ||
} | } | ||
| Line 87: | Line 89: | ||
PRIMARY KEY (`from_user`,`to_user`) | PRIMARY KEY (`from_user`,`to_user`) | ||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ||
| + | </pre>}} | ||
| + | |||
| + | * Step 7 - '''Optional''' | ||
| + | {{cmd|<pre> | ||
| + | If you haven't done it already when upgrading to dovecot 1.2, then add a new column, `enableinternal` to `mailbox` table, type bool, default true: | ||
| + | `enableinternal` tinyint(1) NOT NULL default '1' | ||
</pre>}} | </pre>}} | ||
Revision as of 11:09, 2 June 2010
Contents |
Mission
Enable shared folders under iRedMail with dovecot 1.2.
Requirements
- A properly working iRedMail system;
- A properly working dovecot 1.2 instead of the default 1.1;
Notes
- This article was written with a CentOS-based system in mind. Adapt it for your system.
- You must have a good knowledge of the internal workings of iRedMail, mail services and so on.
Step-by-step configuration
- Step 1.
Add proper namespaces to dovecot.conf:
| File: |
# Namespaces
namespace private {
subscriptions = yes
separator = /
prefix =
inbox = yes
}
namespace shared {
subscriptions = no
separator = /
prefix = Shared/%%u/
location = maildir:%%Lh/Maildir:INDEX=%Lh/Maildir/Shared/%%Lu
list = children
hidden = no
inbox = no
}
|
The private namespace is the default namespace, if it's already in the config do not add it a second time. shared is the one we need here.
- Step 2.
Add proper ACL dictionary to dict section of dovecot.conf:
| File: |
dict {
[...]
acl = mysql:/etc/dovecot-acl-shared-dict.conf
}
|
- Step 3.
Add ACLs to protocol imap in dovecot.conf:
| File: |
protocol imap {
[...]
mail_plugins = quota imap_quota expire [...] acl imap_acl
[...]
}
|
- Step 4.
Add plugin section for ACLs in dovecot.conf:
| File: |
plugin {
acl = vfile
acl_shared_dict = proxy::acl
}
|
- Step 5.
Create the file /etc/dovecot-acl-shared-dict.conf:
| File: |
connect = host=localhost dbname=vmail user=vmailadmin password=PASSWORD_HERE
map {
pattern = shared/shared-boxes/user/$to/$from
table = user_shares
value_field = dummy
fields {
from_user = $from
to_user = $to
}
}
|
- Step 6.
Create table user_shares in vmail database:
| Terminal: |
CREATE TABLE `user_shares` ( `from_user` varchar(100) NOT NULL, `to_user` varchar(100) NOT NULL, `dummy` char(1) default NULL, PRIMARY KEY (`from_user`,`to_user`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
- Step 7 - Optional
| Terminal: |
If you haven't done it already when upgrading to dovecot 1.2, then add a new column, `enableinternal` to `mailbox` table, type bool, default true: `enableinternal` tinyint(1) NOT NULL default '1' |
