How to deliver messages with duplicate ids
How to deliver messages with duplicate ids
Resolution
To enable delivery of messages with duplicate ids, we would need to modify the zimbraMessageIdDedupeCacheSize attribute:
# su - zimbra $ zmprov desc -a zimbraMessageIdDedupeCacheSize zimbraMessageIdDedupeCacheSize Number of Message-Id header values to keep in the LMTP dedupe cache. Subsequent attempts to deliver a message with a matching Message-Id to the same mailbox will be ignored. A value of 0 disables deduping.
type : integer value : callback : immutable : false cardinality : single requiredIn : optionalIn : globalConfig flags : defaults : 3000 min : 0 max : id : 334
From this output we can see that the attribute can be only modified on globalConfig level.
To enable this on COS or account level you need to modify the zimbraPrefMessageIdDedupingEnabled attribute:
$ zmprov desc -a zimbraPrefMessageIdDedupingEnabled zimbraPrefMessageIdDedupingEnabled Account-level switch that enables message deduping. See zimbraMessageIdDedupeCacheSize for more details.
type : boolean value : callback : immutable : false cardinality : single requiredIn : optionalIn : cos,account
Next, we find the current value:
$ zmprov gcf zimbraMessageIdDedupeCacheSize zimbraMessageIdDedupeCacheSize: 3000
... modify it and restart mailboxd:
$ zmprov mcf zimbraMessageIdDedupeCacheSize 0 $ zmmailboxdctl restart
Be aware that this setting disables data deduplication.
Additional Content
Data deduplication (often called intelligent compression or single-instance storage) is a method of reducing storage needs by eliminating redundant data. Only one unique instance of the data is actually retained on storage media, such as disk or tape. Redundant data is replaced with a pointer to the unique data copy. For example, a typical email system might contain 100 instances of the same one megabyte (MB) file attachment. If the email platform is backed up or archived, all 100 instances are saved, requiring 100 MB storage space. With data deduplication, only one instance of the attachment is actually stored; each subsequent instance is just referenced back to the one saved copy. In this example, a 100 MB storage demand could be reduced to only one MB.