diff --git a/en_US/iredadmin/0-iredadmin-pro.restful.api-new.md b/en_US/iredadmin/0-iredadmin-pro.restful.api-new.md index 00738d9c..82a38b9b 100644 --- a/en_US/iredadmin/0-iredadmin-pro.restful.api-new.md +++ b/en_US/iredadmin/0-iredadmin-pro.restful.api-new.md @@ -309,6 +309,7 @@ Notes: `password` | Password| `password=AsTr0ng@` `language` | Preferred language of iRedAdmin web UI | `language=en_US` `quota` | Mailbox quota (in MB) | `quota=1024` + `mailbox_format` | Mailbox format. e.g. `maildir`, `mdbox`. Defaults to `maildir` if not present. For more details, please read Dovecot document: | `mailbox_format=mdbox` diff --git a/en_US/upgrade/0-upgrade.iredmail.0.9.8-0.9.9.md b/en_US/upgrade/0-upgrade.iredmail.0.9.8-0.9.9.md index 7b0f6d12..40e9a34e 100644 --- a/en_US/upgrade/0-upgrade.iredmail.0.9.8-0.9.9.md +++ b/en_US/upgrade/0-upgrade.iredmail.0.9.8-0.9.9.md @@ -64,3 +64,234 @@ Please run commands below to fix incorrect file owner/group and permission: chown mlmmj:mlmmj /opt/mlmmjadmin/settings.py chmod 0400 /opt/mlmmjadmin/settings.py ``` + +## OpenLDAP special + +### Update iRedMail LDAP schema file + +iRedMail-0.9.9 introduces 1 new LDAP attribute for mail user account: + +* `mailboxFormat`: used to store mailbox format. All formats supported by + Dovecot are ok. for example, `maildir`, `mdbox`. For more details, please + check Dovecot document here: + +!!! warning + + If you use different mailbox format, you need to set mailbox format to the + one you're using. + +Download the latest iRedMail LDAP schema file + +* On RHEL/CentOS: + +``` +cd /tmp +wget https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/iredmail/iredmail.schema + +cd /etc/openldap/schema/ +cp iredmail.schema iredmail.schema.bak + +cp -f /tmp/iredmail.schema /etc/openldap/schema/ +service slapd restart +``` + +* On Debian/Ubuntu: +``` +cd /tmp +wget https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/iredmail/iredmail.schema + +cd /etc/ldap/schema/ +cp iredmail.schema iredmail.schema.bak + +cp -f /tmp/iredmail.schema /etc/ldap/schema/ +service slapd restart +``` + +* On FreeBSD: + +``` +cd /tmp +wget https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/iredmail/iredmail.schema + +cd /usr/local/etc/openldap/schema/ +cp iredmail.schema iredmail.schema.bak + +cp -f /tmp/iredmail.schema /usr/local/etc/openldap/schema/ +service slapd restart +``` + +* On OpenBSD: + + > Note: if you're running ldapd as LDAP server, the schema directory is + > `/etc/ldap`, and service name is `ldapd`. + +``` +cd /tmp +ftp https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/iredmail/iredmail.schema + +cd /etc/openldap/schema/ +cp iredmail.schema iredmail.schema.bak + +cp -f /tmp/iredmail.schema /etc/openldap/schema/ +rcctl restart slapd +``` + +### Dovecot: read mailbox format from LDAP + +Please open file `/etc/dovecot/dovecot-ldap.conf` (Linux/OpenBSD) or +`/usr/local/etc/dovecot/dovecot-ldap.conf` (FreeBSD), find the `user_attrs =` +line like below: + +``` +user_attrs = mail=master_user,mail=user,homeDirectory=home,=mail=maildir:~/Maildir/,mailQuota=quota_rule=*:bytes=%$ +``` + +Please replace `maildir:` by `${ldap:mailboxFormat:maildir}`. After modified, +it looks like below: + +``` +user_attrs = mail=master_user,mail=user,homeDirectory=home,=mail=${ldap:mailboxFormat:maildir}:~/Maildir/,mailQuota=quota_rule=*:bytes=%$ +``` + +If attribute `mailboxFormat` doesn't present in user object, Dovecot will use +string `maildir` as default value. + +## MySQL/MariaDB special + +### SQL structure changes in `vmail` database + +We've made some changes to `vmail` database: + +* New SQL column `mailbox.mailboxformat`: used to store mailbox format. + All formats supported by Dovecot are ok. for example, `maildir`, `mdbox`. + __Default value is `maildir`.__ + For more details, please check Dovecot document here: + + +!!! warning + + If you use different mailbox format, you need to set mailbox format to the + one you're using. + +Download SQL template file used to update SQL database: + +``` +cd /root/ +wget https://bitbucket.org/zhb/iredmail/raw/default/extra/update/0.9.9/iredmail.pgsql +``` + +Connect to PostgreSQL server as `postgres` user and import the SQL file: +* on Linux, it's `postgres` user +* on FreeBSD, it's `pgsql` user +* on OpenBSD, it's `_postgresql` user + + +``` +mysql vmail < /root/iredmail.pgsql +``` + +### Dovecot: read mailbox format from SQL + +Please open file `/etc/dovecot/dovecot-mysql.conf` (Linux/OpenBSD) or +`/usr/local/etc/dovecot/dovecot-mysql.conf` (FreeBSD), find the `user_attrs =` +line like below: + +``` +user_query = SELECT \ + ... + CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS home, \ + ... +``` + +Add a new `CONCAT` line after above `CONCAT()` line: + +``` +user_query = SELECT \ + ... + CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS home, \ + CONCAT(mailbox.mailboxformat, ':', mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS mail, \ + ... +``` + +## PostgreSQL special + +### SQL structure changes in `vmail` database + +We've made some changes to `vmail` database: + +* New SQL column `mailbox.mailboxformat`: used to store mailbox format. + All formats supported by Dovecot are ok. for example, `maildir`, `mdbox`. + __Default value is `maildir`.__ + For more details, please check Dovecot document here: + + +!!! warning + + If you use different mailbox format, you need to set mailbox format to the + one you're using. + +Download SQL template file used to update SQL database: + +``` +cd /root/ +wget https://bitbucket.org/zhb/iredmail/raw/default/extra/update/0.9.9/iredmail.mysql +``` + +* Run shell commands as root user below to connect to PostgreSQL server: + +``` +# su - postgres +$ psql -d vmail +sql> \i /tmp/mysql.pgsql +``` + +### Dovecot: read mailbox format from SQL + +Please open file `/etc/dovecot/dovecot-pgsql.conf` (Linux/OpenBSD) or +`/usr/local/etc/dovecot/dovecot-pgsql.conf` (FreeBSD), then + +#### PostgreSQL 8.x + +If you're running __PostgreSQL 8.x__, you can find the `user_attrs =` line like +below: + +``` +user_query = SELECT \ + mailbox.storagebasedirectory || '/' || mailbox.storagenode || '/' || mailbox.maildir AS home, \ + ... +``` + +Please Add a line after above line: + +``` +user_query = SELECT \ + mailbox.storagebasedirectory || '/' || mailbox.storagenode || '/' || mailbox.maildir AS home, \ + mailbox.mailboxformat || ':' || mailbox.storagebasedirectory || '/' || mailbox.storagenode || '/' || mailbox.maildir AS mail, \ + ... +``` + +Restart Dovecot service is required. + +#### PostgreSQL 9.x and later releases + +If you're running __PostgreSQL 9.x__ and later releases, you can find the +`user_attrs =` line like below: + +``` +user_query = SELECT \ + ... + CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS home, \ + ... +``` + +Add a new `CONCAT` line after above `CONCAT()` line: + +``` +user_query = SELECT \ + ... + CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS home, \ + CONCAT(mailbox.mailboxformat, ':', mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS mail, \ + ... +``` + +Restart Dovecot service is required. diff --git a/html/iredadmin-pro.restful.api-new.html b/html/iredadmin-pro.restful.api-new.html index ddbdbe37..4e0f7d01 100644 --- a/html/iredadmin-pro.restful.api-new.html +++ b/html/iredadmin-pro.restful.api-new.html @@ -880,6 +880,11 @@ to be a domain admin.

Mailbox quota (in MB) quota=1024 + +mailbox_format +Mailbox format. e.g. maildir, mdbox. Defaults to maildir if not present. For more details, please read Dovecot document: https://wiki2.dovecot.org/MailboxFormat +mailbox_format=mdbox + diff --git a/html/upgrade.iredmail.0.9.8-0.9.9.html b/html/upgrade.iredmail.0.9.8-0.9.9.html index fe44f105..00bb96e5 100644 --- a/html/upgrade.iredmail.0.9.8-0.9.9.html +++ b/html/upgrade.iredmail.0.9.8-0.9.9.html @@ -28,6 +28,25 @@
  • Fix incorrect file owner/group of mlmmjadmin config file
  • +
  • OpenLDAP special +
  • +
  • MySQL/MariaDB special +
  • +
  • PostgreSQL special +
  • @@ -81,7 +100,204 @@ latest stable release immediately:

    Please run commands below to fix incorrect file owner/group and permission:

    chown mlmmj:mlmmj /opt/mlmmjadmin/settings.py
     chmod 0400 /opt/mlmmjadmin/settings.py
    -