From 22798a85e503a15e6e8203379450eedc42d91a64 Mon Sep 17 00:00:00 2001 From: andryyy Date: Mon, 18 Mar 2019 14:09:32 +0100 Subject: [PATCH] [Config] Add MAILDIR_SUB, "Maildir" for new setups by default [Update] Add MAILDIR_SUB= for updated mailcows [Dovecot] Read MAILDIR_SUB for mail_home --- data/Dockerfiles/dovecot/docker-entrypoint.sh | 2 +- docker-compose.yml | 3 ++- generate_config.sh | 3 +++ update.sh | 6 ++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/Dockerfiles/dovecot/docker-entrypoint.sh b/data/Dockerfiles/dovecot/docker-entrypoint.sh index 80db4b48..e3626938 100755 --- a/data/Dockerfiles/dovecot/docker-entrypoint.sh +++ b/data/Dockerfiles/dovecot/docker-entrypoint.sh @@ -106,7 +106,7 @@ chmod 644 /usr/local/etc/dovecot/mail_plugins /usr/local/etc/dovecot/mail_plugin cat < /usr/local/etc/dovecot/sql/dovecot-dict-sql-userdb.conf driver = mysql connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}" -user_query = SELECT CONCAT(JSON_UNQUOTE(JSON_EXTRACT(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%n/:VOLATILEDIR=/var/volatile/%u') AS mail, 5000 AS uid, 5000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1' +user_query = SELECT CONCAT(JSON_UNQUOTE(JSON_EXTRACT(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%n/${MAILDIR_SUB}:VOLATILEDIR=/var/volatile/%u') AS mail, 5000 AS uid, 5000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1' iterate_query = SELECT username FROM mailbox WHERE active='1'; EOF diff --git a/docker-compose.yml b/docker-compose.yml index 49c784eb..302adf12 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -164,7 +164,7 @@ services: - sogo dovecot-mailcow: - image: mailcow/dovecot:1.64 + image: mailcow/dovecot:1.65 build: ./data/Dockerfiles/dovecot cap_add: - NET_BIND_SERVICE @@ -188,6 +188,7 @@ services: - MAILDIR_GC_TIME=${MAILDIR_GC_TIME:-1440} - ACL_ANYONE=${ACL_ANYONE:-disallow} - SKIP_SOLR=${SKIP_SOLR:-y} + - MAILDIR_SUB=${MAILDIR_SUB:-} ports: - "${DOVEADM_PORT:-127.0.0.1:19991}:12345" - "${IMAP_PORT:-143}:143" diff --git a/generate_config.sh b/generate_config.sh index 8cde0ffd..7495f057 100755 --- a/generate_config.sh +++ b/generate_config.sh @@ -234,6 +234,9 @@ IPV6_NETWORK=fd4d:6169:6c63:6f77::/64 #API_KEY= #API_ALLOW_FROM=127.0.0.1,1.2.3.4 +# mail_home is ~/Maildir +MAILDIR_SUB=Maildir + EOF mkdir -p data/assets/ssl diff --git a/update.sh b/update.sh index be6ef9d7..d879f593 100755 --- a/update.sh +++ b/update.sh @@ -243,6 +243,12 @@ for option in ${CONFIG_ARRAY[@]}; do echo '# Disable Solr or if you do not want to store a readable index of your mails in solr-vol-1.' >> mailcow.conf echo "SKIP_SOLR=y" >> mailcow.conf fi + elif [[ ${option} == "MAILDIR_SUB" ]]; then + if ! grep -q ${option} mailcow.conf; then + echo "Adding new option \"${option}\" to mailcow.conf" + echo '# MAILDIR_SUB defines a path in a users virtual home to keep the maildir in. Leave empty for updated setups.' >> mailcow.conf + echo "MAILDIR_SUB=" >> mailcow.conf + fi elif ! grep -q ${option} mailcow.conf; then echo "Adding new option \"${option}\" to mailcow.conf" echo "${option}=n" >> mailcow.conf