Hi, I have another sieve question, this time about setting variables.
I join a lot of mailing lists at ietf.org. I thought it'd be handy to filter these all into a common folder and then into individual folders, without having to configure each mailing list independently. So wrote this (this is just a part, obviously): require ["envelope", "variables", "date", "fileinto", "mailbox" ]; if address :is :domain "to" "ietf.org" { if address :matches :localpart "to" "*" {set "lopart" "${1}";} } elsif address :is :domain "cc" "ietf.org" { if address :matches :localpart "cc" "*" {set "lopart" "${1}";} } else {set "lopart" "generic-list-box";} fileinto :create "ietf.${lopart}-in"; stop; } Now, this works, unless someone sends a To: line like this: To: a...@crankycanuck.ca, listn...@ietf.org The problem in that case is that you _do_ get a match, but the bit "if address :matches :localpart "to" "*" {set "lopart" "${1}";}" ends up putting this in a mailbox ietf.ajs-in, when what is the mailbox ietf.listname-in. I thought that allof(if address :matches :localpart "to" "*", address :matches :localpart "to" "*") {set "lopart" "${1}";}, would solve this, but it doesn't seem to. The localpart matching catches the a...@crankycanuck.ca address anyway, which surprised me. Am I dim, am I not understanding something about how to do this, or is this really impossible? Thanks, A -- Andrew Sullivan a...@crankycanuck.ca