Upgrade/iRedMail/0.8.0-0.8.1
From iRedMail
Contents |
THIS IS STILL A DRAFT, DO NOT APPLY BELOW STEPS.
General (All backends should apply these upgrade steps)
Add missing auth service in Dovecot for Dovecot-2
WARNING: This is applicable to only Dovecot-2.x.
- Edit /etc/dovecot/dovecot.conf, add service auth-userdb in section service auth {}:
| File: dovecot.conf |
service auth {
...
unix_listener auth-userdb {
user = vmail
group = vmail
mode = 0660
}
}
* Restarting Dovecot service is required.
= OpenLDAP backend special =
== Deliver emails to mail list members without enabledService=smtp ==
With default Postfix settings in iRedMail-0.7.4 and earlier versions, if a mail user is not allowed to use SMTP service to send out email (without '''enabledService=smtp'''), he/she cannot receive emails which delivered to the mail lists which he/she is belong to. Below steps fix this issue.
* Edit Postfix config file, '''main.cf''', update '''virtual_alias_maps''' to replace '''sender_login_maps.cf''' by '''virtual_group_members_maps.cf''':
** On Linux and OpenBSD, it's '''/etc/postfix/main.cf'''.
** On FreeBSD, it's '''/usr/local/etc/postfix/main.cf'''. And you should use '''/usr/local/etc/postfix/ldap/virtual_group_members_maps.cf''' in Postfix setting described below.
{{cfg|main.cf|<pre>
# OLD SETTING
#virtual_alias_maps = ..., proxy:ldap:/etc/postfix/ldap/sender_login_maps.cf, ...
# NEW SETTING
virtual_alias_maps = ..., proxy:ldap:/etc/postfix/ldap/virtual_group_members_maps.cf, ...
|
- Create new file virtual_group_members_maps.cf:
- Copy sender_login_maps.cf to virtual_group_members_maps.cf.
- Edit virtual_group_members_maps.cf, remove (enabledService=smtp) (with brackets, yes) and save it.
- Fix file permission:
| Terminal: |
# ---- On Linux and FreeBSD ---- # chown root:postfix virtual_group_members_maps.cf # chmod 0640 virtual_group_members_maps.cf # ---- On OpenBSD ---- # chown root:_postfix virtual_group_members_maps.cf # chmod 0640 virtual_group_members_maps.cf |
- Restarting Postfix service is required.
Add new attribute/value required by IMAP share folder in Dovecot-2: enabledService=lib-storage
Dovecot-2.x requires enabledService=lib-storage for IMAP folder sharing. Below steps are used to add it for all mail users.
Steps:
- Download python script used to adding missing values.
| Terminal: |
# cd /root/ # wget https://bitbucket.org/zhb/iredmail/raw/cb7d2492563d/extra/update/updateLDAPValues_080_to_081.py |
- Open updateLDAPValues_080_to_081.py, config LDAP server related settings in file head. e.g.
| File: updateLDAPValues_080_to_081.py |
uri = 'ldap://127.0.0.1:389' basedn = 'o=domains,dc=iredmail,dc=org' bind_dn = 'cn=vmailadmin,dc=iredmail,dc=org' bind_pw = 'passwd' |
Tip:
- You can find them in iRedAdmin config file or iRedMail.tips file under your iRedMail installation directory.
- Use 'cn=Manager' instead of 'cn=vmailadmin' here is ok too.
- Execute this script, it will add missing values for mail accounts:
| Terminal: |
# python updateLDAPValues_080_to_081.py |
MySQL backend special
Fix incorrect maildir path with 'virtual' transport
iRedMail uses Dovecot LDA as transport by default, but if you use transport virtual, the Postfix built-in transport, it will use different maildir path from Dovecot LDA. Below step is used to fix it.
- Edit /etc/postfix/mysql/virtual_mailbox_maps.cf, update query =:
| File: mysql/virtual_mailbox_maps.cf |
# OLD SETTING #query = SELECT CONCAT(mailbox.storagenode, '/', mailbox.maildir) FROM ... # NEW SETTING query = SELECT CONCAT(mailbox.storagenode, '/', mailbox.maildir, '/Maildir/') FROM ... |
- Restart Postfix service to make it use new setting.
PostgreSQL backend special
Fix incorrect maildir path with 'virtual' transport
iRedMail uses Dovecot LDA as transport by default, but if you use transport virtual, the Postfix built-in transport, it will use different maildir path from Dovecot LDA. Below step is used to fix it.
- Edit /etc/postfix/mysql/virtual_mailbox_maps.cf, update query =:
| File: mysql/virtual_mailbox_maps.cf |
# OLD SETTING #query = SELECT (mailbox.storagenode || '/' || mailbox.maildir) FROM ... # NEW SETTING query = SELECT CONCAT(mailbox.storagenode, '/', mailbox.maildir, '/Maildir/') FROM ... |
- Restart Postfix service to make it use new setting.
Add new column required by IMAP share folder in Dovecot-2: enablelib-storage=1
Dovecot-2.x requires mailbox.enablelib-storage=1 for IMAP folder sharing. Below steps are used to add it for all mail users.
Please switch to PostgreSQL daemon user, and execute SQL commands to add required column mailbox.enablelib-storage:
| Terminal: |
# su - _postgres
# psql -d vmail
sql> ALTER TABLE mailbox ADD COLUMN "enablelib-storage" INT2 NOT NULL DEFAULT 1;
sql> CREATE INDEX idx_mailbox_lib_storage ON mailbox ("enablelib-storage");
sql> GRANT SELECT ON mailbox TO vmail;
sql> GRANT SELECT,UPDATE,INSERT,DELETE ON mailbox to vmailadmin;
|
