sieve-filter not respecting :create flag of fileinto

David Arroyo david at aqwari.net
Fri Mar 11 22:04:37 UTC 2022


Hello,

I recently significantly modified my sieve rules for filing mailing list
posts in my Fastmail inbox. The rules contain a few rules that file mail
like so:

	fileinto :create ml.${5}${4}{$3}{$2}{$1}; # reversed list-id

The rules work as expected on delivery to fastmail. Because these rules
only run on delivery, and the new folder layout is different from my
existing one, I want to apply the rules to my existing mail. I thought
dovecot's `sieve-filter` command, together with the `imapc` storage
backend, would be a good way to do that, so I moved some existing mail
into a folder, `sieve-test`, and ran the following:

	sieve-filter -x '+editheader +mailbox' -W -e rules.sieve sieve-test

However, what I see is that sieve-filter fails when the new directory
does not exist. Here is some example (redacted) output:

Info: imapc(imap.fastmail.com:993): Connected to x.x.x.x:993 (local x.x.x.x)
error: msgid=<xxx>: fileinto action: failed to store into mailbox 'ml.gnu.guix-devel': Mailbox does not exist.
sieve-filter(me): Info: sieve: msgid=<xxx>: left message in mailbox 'sieve-test'
error: sieve script execution failed for this message; message left in source mailbox.
sieve-filter(me): Info: sieve: msgid=<yyy>: fileinto action: stored mail into mailbox 'ml.9fans.9fans'

My config looks like this:

	protocols = none
	mail_location = imapc:
	namespace {
	  inbox = yes
	  separator = .
	}
	imapc_host = imap.fastmail.com
	imapc_port = 993
	imapc_ssl = imaps
	imapc_user = $username

If this is a bug in sieve-filter I'd be happy to try and fix it, but
I'm reaching out here first to see if this is expected behavior or a
misconfiguration on my part.

Thanks for any help,
David


More information about the dovecot mailing list