Struggling with sieve, fileinto and variables.

Barry Pearce barryspearce at hotmail.com
Wed May 30 15:01:17 EEST 2018


Hi,

Im on Manjaro linux fully up to date running

dovecot 2.3.1-2
pigeonhole 0.5.1-2

All is running well except I am having problems with fileinto - it refuses to use variables, and mailboxexists is also failing for me.

Im just dealing with plus addressing - should be simple but the behaviour Im experiencing isnt right.

require ["variables", "envelope", "fileinto", "subaddress", "mailbox"];
if envelope :matches :detail "to" "*" {
    set :lower "name" "${1}";
}
fileinto :create "folder3";

This works, but changing the last line to:

fileinto :create "${name}";

fails and files into inbox. As does:

fileinto :create "${1}";

It makes no difference if the fileinto is placed inside the if statement or otherwise. Using sieve-test suggests the basic script it should work and traces show the right action.

On a related matter the script Im actually trying to get to work is:

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

if envelope :matches :detail "to" "*" {
    set :lower "name" "${1}";
}
if mailboxexists "${name}" {
        fileinto :create "${name}";
}

But fails and files in the inbox.

Modifying the script to:

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

if envelope :matches :detail "to" "*" {
    set :lower "name" "${1}";
}

if mailboxexists "${name}" {
        fileinto :create "folder7";
} else {
  fileinto :create "folder8";
}

Files into folder8. So the mailboxexists is failing.

     ## Started executing script 'plus-addressing'
  3: envelope test
  3:   starting `:matches' match with `i;ascii-casemap' comparator:
  3:   getting `to' part from message envelope
  3:   extracting `detail' part from address <test+folder4 at test.net>
  3:   matching value `folder4'
  3:     with key `*' => 1
  3:   finishing match with result: matched
  3: jump if result is false
  3:   not jumping
  4: set command
  7:   modify :lower "folder4" => "folder4"
  7:   assign `name' [0] = "folder4"
  7: mailboxexists test
  7:   mailbox `folder4' cannot be opened
  7:   some mailboxes are unavailable
  7: jump if result is false
  7:   jumping to line 9
 10: fileinto action
 10:   store message in mailbox `folder8'
     ## Finished executing script 'plus-addressing'

Here folder4 actually does exist - so the sieve-test confirms that issue.  Im at a loss as to whats going on. Im particularly perplexed by the difference in behaviour between sieve-test and the result under the live server.


Any ideas?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20180530/0d95e4d1/attachment.html>


More information about the dovecot mailing list