I recently upgraded dovecot and it now fails to start sieve processing. syslog contains:
Error: sieve: Failed to initialize script execution: Invalid postmaster_address: invalid address `postmaster@' specified for the postmaster_address setting
The problem appears to be that the default dovecot configuration (/etc/dovecot/conf.d/15-lda.conf)
allows the postmaster_address setting to default. The default value is postmaster@%d.
Unfortunately in some contexts the domain (%d) is not known and so the postmaster_address
ends up with the invalid value 'postmaster@'.
This seems to have been the case for some time but does not seem to have caused any noticeable problems (for me, at least).
However, a recent change to dovecot-sieve seems to insist on validating that address when initialising sieve processing.
This causes sieve to fail, with the error shown above, even when the postmaster_address setting will not actually be used.
No sieve scripts at all are run, whether they rely on that setting or not.
Note: in my case, sieve is being called from dovecot-lda, which is handling local delivery.
The workround is to manually configure postmaster_address.
Personally I doubt the wisdom of the new validation, as it never seems to have caused a problem before.
I don't know if it can be removed, or if the code can be improved to correctly detect the domain in more cases.
But as this breaks all sieve scripts after a debian upgrade to this version please consider one or more of the following:
1) Add a NEWS item warning that the postmaster_address setting in /etc/dovecot/conf.d/15-lda.conf must be modified to specify
the domain explicitly.
2) Do magic at upgrade time to fix the setting.
3) For new installations, make sure the setting is specified correctly so that they will be able to start using sieve.