On Oct 22, 2020, at 12:19, @lbutlr <kremels@kreme.com> wrote:

On 22 Oct 2020, at 10:05, @lbutlr <kremels@kreme.com> wrote:
require ["variables", "copy"];

if address :matches ["To", "Cc"] ["*@*."] {
 redirect :copy "backup+295.${1}.${2}@*example.com*";
}

I have tried this with similar results:

require ["copy", "variables", "envelope", "fileinto", "subaddress"];

  if envelope :matches :detail "to" "*" {
    set :lower "name" "${1}";
    redirect :copy "backup+295.${name}@@*example.com*";
  }

     ## Started executing script 'bcc'
  5: envelope test
  5:   starting `:matches' match with `i;ascii-casemap' comparator:
  5:   getting `to' part from message envelope
  5:   extracting `detail' part from address <kremels@kreme.com>
  5:   finishing match with result: not matched
  5: jump if result is false
  5:   jumping to line 7
     ## Finished executing script 'bcc'

So why are these not matching? I can see the 'detail' right there, and this matches examples that I see online.

(I've read, I think, every page google or DDG can find that contains "redirect :copy" to no avail).


If I read that bcc trace, it says “extracting ‘detail’ part from address <kremels@kreme.com>”.

kremels@kreme.com” does not have a :detail part (https://wiki2.dovecot.org/Pigeonhole/Sieve/Examples talks about this).

If it were “kremels+thing@kreme.com” then the net line out to say “finished match with result: ‘thing’” or some such.

My notes from my sieve file:

# :localpart = :user+:detail
# address are :localpart @ :domain, or :user + :detail @ :domain
# See RFC5233

Sean