diff --git a/CHANGELOG.md b/CHANGELOG.md
index df7f0851..1389eb1b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,9 @@
- filtermail: do not allow ASCII armor without actual payload
([#325](https://github.com/deltachat/chatmail/pull/325))
+- dovecot: enable gzip compression on disk
+ ([#341](https://github.com/deltachat/chatmail/pull/341))
+
## 1.3.0 - 2024-06-06
- don't check necessary DNS records on cmdeploy init anymore
diff --git a/cmdeploy/src/cmdeploy/dovecot/dovecot.conf.j2 b/cmdeploy/src/cmdeploy/dovecot/dovecot.conf.j2
index 144ccf58..abe5fe57 100644
--- a/cmdeploy/src/cmdeploy/dovecot/dovecot.conf.j2
+++ b/cmdeploy/src/cmdeploy/dovecot/dovecot.conf.j2
@@ -38,7 +38,14 @@ service imap {
mail_server_admin = mailto:root@{{ config.mail_domain }}
mail_server_comment = Chatmail server
-mail_plugins = quota
+# `zlib` enables compressing messages stored in the maildir.
+# See
+#
+# for documentation.
+#
+# quota plugin documentation:
+#
+mail_plugins = zlib quota
# these are the capabilities Delta Chat cares about actually
# so let's keep the network overhead per login small
@@ -96,7 +103,7 @@ mail_privileged_group = vmail
# Pass all IMAP METADATA requests to the server implementing Dovecot's dict protocol.
mail_attribute_dict = proxy:/run/chatmail-metadata/metadata.socket:metadata
-# Enable IMAP COMPRESS (RFC 4978).
+# `imap_zlib` enables IMAP COMPRESS (RFC 4978).
#
protocol imap {
mail_plugins = $mail_plugins imap_zlib imap_quota
@@ -104,9 +111,6 @@ protocol imap {
}
protocol lmtp {
- # quota plugin documentation:
- #
- #
# notify plugin is a dependency of push_notification plugin:
#
#
@@ -118,7 +122,11 @@ protocol lmtp {
#
# Sieve to mark messages that should not be notified as \Seen
#
- mail_plugins = $mail_plugins quota mail_lua notify push_notification push_notification_lua sieve
+ mail_plugins = $mail_plugins mail_lua notify push_notification push_notification_lua sieve
+}
+
+plugin {
+ zlib_save = gz
}
plugin {