Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. The format
- Added a compatibility note for a Dovecot + Solr 9.8 breaking change ([#4433](https://github.com/docker-mailserver/docker-mailserver/pull/4433))
- **Internal:**
- Refactored `setup config dkim` (`open-dkim`) ([#4375](https://github.com/docker-mailserver/docker-mailserver/pull/4375))
- `setup email list` and the default `ENABLE_QUOTAS=1` ENV now better communicates when config is incompatible ([#4453](https://github.com/docker-mailserver/docker-mailserver/pull/4453))

## [v15.0.2](https://github.com/docker-mailserver/docker-mailserver/releases/tag/v15.0.2)

Expand Down
6 changes: 6 additions & 0 deletions docs/content/config/environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,12 @@ Set the mailbox size limit for all users. If set to zero, the size will be unlim

See [mailbox quota][docs-accounts-quota].

!!! info "Compatibility"

This feature is presently only compatible with `ACCOUNT_PROVISIONER=FILE`.

When using a different provisioner (or `SMTP_ONLY=1`) this ENV will instead default to `0`.

##### POSTFIX_MESSAGE_SIZE_LIMIT

Set the message size limit for all users. If set to zero, the size will be unlimited (not recommended!). Size is in bytes.
Expand Down
4 changes: 4 additions & 0 deletions target/bin/listmailuser
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ source /usr/local/bin/helpers/index.sh
source /etc/dms-settings 2>/dev/null

function _main() {
if [[ ${ACCOUNT_PROVISIONER} != 'FILE' ]]; then
_exit_with_error "This command is only compatible with 'ACCOUNT_PROVISIONER=FILE'"
fi
Comment on lines +11 to +13
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could technically be dropped, but I don't think DMS is intended to support both file based accounts and LDAP at the same time, so I'm inclined to keep the early exit constraint here? 🤔

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fail-fast is the right approach here, indeed.


local DATABASE_ACCOUNTS='/tmp/docker-mailserver/postfix-accounts.cf'
local DATABASE_VIRTUAL='/tmp/docker-mailserver/postfix-virtual.cf'

Expand Down
15 changes: 13 additions & 2 deletions target/scripts/startup/variables-stack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function __environment_variables_general_setup() {
VARS[DMS_VMAIL_UID]="${DMS_VMAIL_UID:=5000}"
VARS[DMS_VMAIL_GID]="${DMS_VMAIL_GID:=5000}"

# user-customizable are last
# user-customizable are next

_log 'trace' 'Setting anti-spam & anti-virus environment variables'

Expand Down Expand Up @@ -106,7 +106,6 @@ function __environment_variables_general_setup() {
VARS[ENABLE_POP3]="${ENABLE_POP3:=0}"
VARS[ENABLE_IMAP]="${ENABLE_IMAP:=1}"
VARS[ENABLE_POSTGREY]="${ENABLE_POSTGREY:=0}"
VARS[ENABLE_QUOTAS]="${ENABLE_QUOTAS:=1}"
VARS[ENABLE_RSPAMD]="${ENABLE_RSPAMD:=0}"
VARS[ENABLE_RSPAMD_REDIS]="${ENABLE_RSPAMD_REDIS:=${ENABLE_RSPAMD}}"
VARS[ENABLE_SASLAUTHD]="${ENABLE_SASLAUTHD:=0}"
Expand Down Expand Up @@ -167,6 +166,18 @@ function __environment_variables_general_setup() {
VARS[SUPERVISOR_LOGLEVEL]="${SUPERVISOR_LOGLEVEL:=warn}"
VARS[TZ]="${TZ:=}"
VARS[UPDATE_CHECK_INTERVAL]="${UPDATE_CHECK_INTERVAL:=1d}"

_log 'trace' 'Setting environment variables that require other variables to be set first'

# The Dovecot Quotas feature is presently only supported with the default FILE account provisioner,
# Enforce disabling the feature, unless it's been explicitly set via ENV (to avoid mismatch between
# explicit ENV and sourcing from /etc/dms-settings)
if [[ ${ACCOUNT_PROVISIONER} != 'FILE' || ${SMTP_ONLY} -eq 1 ]] && [[ ${ENABLE_QUOTAS:-1} -eq 1 ]]; then
_log 'debug' "The 'ENABLE_QUOTAS' feature is enabled (by default) but is not compatible with your config. Disabling"
VARS[ENABLE_QUOTAS]="${ENABLE_QUOTAS:=0}"
else
VARS[ENABLE_QUOTAS]="${ENABLE_QUOTAS:=1}"
fi
}

function __environment_variables_log_level() {
Expand Down