Upgrade/iRedMail/0.8.0-0.8.1
From iRedMail
Contents |
THIS IS STILL A DRAFT, DO NOT APPLY BELOW STEPS.
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.
| File: main.cf |
# 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.
