On Thu, 18 Feb 2021 13:08:28 +0000 Darac Marjal mailinglist@darac.org.uk wrote:
What I use is:
if envelope :detail :regex "to" "(.+)" { set :upperfirst :lower "detail" "${1}"; fileinto :create "Tagged/${detail}"; stop; }
Which says "if the envelope detail is not empty, copy it to a variable called 'detail' and titlecase it, then file the message into Tagged/$detail, creating that if necessary". I think the most relevant part here is using a regex to match on the detail - that copies the value of the detail into $1, which you can then use as you see fit.
(The reply seems to have been lost, so I'm sending it again, with some edits)
Hi!
Are you sure it works with aliases? I have tried putting it in my sieve, but for me it works only for "user+detail", i.e. when I use an actually existing user name + detail. If I use an "alias+detail", the message is still dropped into INBOX.
And I guess I now understand why: when a message is trancferred by dovecot-lmtp from an alias to the end user, it loses its detail part of the "Envelope-To". The detail part of the address is preserved only in the header "To".
So there are two questions:
- Is there a way to make dovecot-lmtp preserve the detail part of the address in the envelope?
or
- Is there a way to cut a part of the address from the header "To"? I mean, cut the part between the + and the @ and use this part as a variable for fileinto. I have tried this:
if header :matches "to" "+(*)@" { fileinto :create "Tagged/${1}"; stop; }
but the message is still dropped into INBOX.
-- Respectfully, Denis Shadrin