Steven Mainor
2016-Nov-30 08:47 UTC
Sieve script won't compile. Compiler output isn't helpful.
Hello! I hope you will forgive my ignorance but I have a problem I have been trying to solve for a week and I'm not sure where else to turn. I'm trying to write a sieve script to sort all of my mail. I was writing this script to replace the one I am currently using but I can't seem to get it to compile. I don't know a lot about sieve or really scripting of any kind and I just can't figure out what I'm doing wrong. The compiler just puts out a bunch of output that doesn't make sense. like "unexpected character" when I know the character works there because I am already running a script with some of the same lines. I'm attaching the script with some names and addresses changed and the sieve output to this email. I would greatly appreciate any help anyone could offer. -------------- next part -------------- require ["envelope", "fileinto", "mailbox", "imap4flags", "regex"]; if anyof (header :contains "List-ID" "<linux-kernel.vger.kernel.org>", header :contains "List-Id" "Dovecot", envelope :domain "From" "lists.ubuntu.com", envelope :domain "from" "debian.org", envelope :domain "From" "1.example.com", envelope :domain "From" "2.example.com", envelope :domain "From" "3.example.com", envelope :domain "From" "4.example.com", envelope :domain "From" "5.example.com", envelope :domain "From" "6.example.com", envelope "From" "person at 7.example.com", envelope :domain "From" "8.example.com", envelope :domain "From" "9.example.com", envelope :domain "From" "10.example.com", envelope :domain "From" "11.example.com", envelope :domain "From" "12.example.com", envelope :domain "From" "13.example.com", envelope :domain "From" "14.example.com", envelope :domain "From" "15.example.com", envelope :domain "From" "16.ecample.com") { if header :contains "List-ID" "<linux-kernel.vger.kernel.org>" { fileinto :create "Lists/Kernel"; stop; } if header :contains "List-Id" "Dovecot" { fileinto :create "Lists/Dovecot"; stop; } if envelope :domain "From" "lists.ubuntu.com" { if envelope "from" "ubuntu-users-bounces at lists.ubuntu.com" { fileinto :create "Lists/Ubuntu/Users"; stop; } if envelope "From" "ubuntu-security-announce-bounces at lists.ubuntu.com" { fileinto :create "Lists/Ubuntu/Security"; stop; } else { fileinto :create "Lists/Ubuntu"; stop; } } if envelope :domain "From" "debian.org" { if envelope :contains "From" "debian-user" { fileinto :create "Lists/Debian/User"; stop; } if envelope :contains "From" "debain-security" { fileinto :create "Lists/Debain/Security"; stop; } if envelope :contains "From" "debain-security-announce" { fileinto :create "Lists/Debain/SecurityAnnounce"; stop; } if envelope :contains "From" "debian-news" { fileinto :create "Lists/Debain/News; stop; } if envelope :contains "From" "debian-lts" { fileinto :create "Lists/Debian/LtsAnnounce"; stop; } if envelope :contains "From" "debian-photo" { fileinto :create "Lists/Debian/Photo"; stop; } else { fileinto :create "Lists/Debain"; stop; } } if anyof (envelope :domain "From" "1.example.com", envelope :domain "From" "2.example.com", envelope :domain "From" "3.example.com", envelope :domain "From" "4.example.com", envelope :domain "From" "5.example.com", envelope :domain "From" "6.example.com", envelope "From" "person at 7.example.com", envelope :domain "From" "8.example.com", envelope :domain "From" "9.example.com", envelope :domain "From" "10.example.com", envelope :domain "From" "11.example.com", envelope :domain "From" "11.example.com", envelope :domain "From" "12.example.com", envelope :domain "From" "13.example.com", envelope :domain "From" "14.example.com", envelope :domain "From" "15.example.com") { fileinto :create "Lists/Bulk"; stop; } else { fileinto :create "Lists"; stop; } } if anyof (header "From" "store-news at amazon.com", envelope :contains "From" "menswearhouse.com", envelope :contains "From" "officedepot.com", envelope :contains "From" "walgreens.com", header "From" "promo at email.newegg.com") { fileinto :create "Promo"; stop; } if envelope :contains "From" "facebookmail.com" { fileinto :create "SocialMedia"; stop; } if anyof (envelope :contains "From" "creditonemail.com", envelope :contains "From" "statefarm.com", envelope :contains "From" "capitalone.com") { fileinto :create "Banking"; stop; } -------------- next part -------------- newfilter: line 100: error: unexpected character(s) starting with '-'. newfilter: line 100: error: expected end of command ';' or the beginning of a compound block '{', but found unknown characters. newfilter: line 104: error: unexpected character(s) starting with '-'. newfilter: line 113: error: unexpected character(s) starting with '.'. newfilter: line 113: error: unexpected character(s) starting with '.'. newfilter: line 114: error: unexpected character(s) starting with '.'. newfilter: line 114: error: unexpected character(s) starting with '.'. newfilter: line 115: error: unexpected character(s) starting with '.'. newfilter: line 115: error: unexpected character(s) starting with '.'. newfilter: line 116: error: unexpected character(s) starting with '.'. newfilter: line 116: error: unexpected character(s) starting with '.'. newfilter: line 117: error: unexpected character(s) starting with '.'. newfilter: line 117: error: unexpected character(s) starting with '.'. newfilter: line 118: error: unexpected character(s) starting with '.'. newfilter: line 118: error: unexpected character(s) starting with '.'. newfilter: line 119: error: unexpected character(s) starting with '@'. newfilter: line 119: error: unexpected character(s) starting with '.'. newfilter: line 119: error: unexpected character(s) starting with '.'. newfilter: line 120: error: unexpected character(s) starting with '.'. newfilter: line 120: error: unexpected character(s) starting with '.'. newfilter: line 121: error: unexpected character(s) starting with '.'. newfilter: line 121: error: unexpected character(s) starting with '.'. newfilter: line 122: error: unexpected character(s) starting with '.'. newfilter: line 122: error: unexpected character(s) starting with '.'. newfilter: line 123: error: unexpected character(s) starting with '.'. newfilter: line 123: error: unexpected character(s) starting with '.'. newfilter: line 124: error: unexpected character(s) starting with '.'. newfilter: line 124: error: unexpected character(s) starting with '.'. newfilter: line 125: error: unexpected character(s) starting with '.'. newfilter: line 125: error: unexpected character(s) starting with '.'. newfilter: line 126: error: unexpected character(s) starting with '.'. newfilter: line 126: error: unexpected character(s) starting with '.'. newfilter: line 127: error: unexpected character(s) starting with '.'. newfilter: line 127: error: unexpected character(s) starting with '.'. newfilter: line 128: error: unexpected character(s) starting with '.'. newfilter: line 128: error: unexpected character(s) starting with '.'. newfilter: line 137: error: unexpected character(s) starting with '-'. newfilter: line 137: error: unexpected character(s) starting with '@'. newfilter: line 137: error: unexpected character(s) starting with '.'. newfilter: line 138: error: unexpected character(s) starting with '.'. newfilter: line 139: error: unexpected character(s) starting with '.'. newfilter: line 140: error: unexpected character(s) starting with '.'. newfilter: line 141: error: unexpected character(s) starting with '@'. newfilter: line 141: error: unexpected character(s) starting with '.'. newfilter: line 141: error: unexpected character(s) starting with '.'. newfilter: line 145: error: unexpected character(s) starting with '.'. newfilter: line 149: error: unexpected character(s) starting with '.'. newfilter: line 150: error: unexpected character(s) starting with '.'. newfilter: line 151: error: unexpected character(s) starting with '.'. newfilter: line 155: error: end of file before end of quoted string started at line 152. newfilter: error: parse failed.
Martin Wheldon
2016-Nov-30 09:10 UTC
Sieve script won't compile. Compiler output isn't helpful.
Hi Steven, I think you may be missing the :contains from the two header lines below:> if anyof (header "From" "store-news at amazon.com", > envelope :contains "From" "menswearhouse.com", > envelope :contains "From" "officedepot.com", > envelope :contains "From" "walgreens.com", > header "From" "promo at email.newegg.com") { > fileinto :create "Promo"; > stop;if anyof (header :contains "From" "store-news at amazon.com", envelope :contains "From" "menswearhouse.com", envelope :contains "From" "officedepot.com", envelope :contains "From" "walgreens.com", header :contains "From" "promo at email.newegg.com") { fileinto :create "Promo"; stop; Hope that helps Best Regards Martin On 2016-11-30 08:47, Steven Mainor wrote:> Hello! I hope you will forgive my ignorance but I have a problem I > have been trying to solve for a week and I'm not sure where else to > turn. > > I'm trying to write a sieve script to sort all of my mail. I was > writing this script to replace the one I am currently using but I > can't seem to get it to compile. I don't know a lot about sieve or > really scripting of any kind and I just can't figure out what I'm > doing wrong. > > The compiler just puts out a bunch of output that doesn't make sense. > like "unexpected character" when I know the character works there > because I am already running a script with some of the same lines. > > I'm attaching the script with some names and addresses changed and the > sieve output to this email. > > I would greatly appreciate any help anyone could offer.
Steven Mainor
2016-Nov-30 09:30 UTC
Sieve script won't compile. Compiler output isn't helpful.
Hey martin, Thanks for the reply! I made the changes you suggested but I got the same results. According to my understanding, #header "from" "person at example.com"# is correct for an exact match. On 11/30/2016 04:10 AM, Martin Wheldon wrote:> Hi Steven, > > I think you may be missing the :contains from the two header lines below: > >> if anyof (header "From" "store-news at amazon.com", >> envelope :contains "From" "menswearhouse.com", >> envelope :contains "From" "officedepot.com", >> envelope :contains "From" "walgreens.com", >> header "From" "promo at email.newegg.com") { >> fileinto :create "Promo"; >> stop; > > if anyof (header :contains "From" "store-news at amazon.com", > envelope :contains "From" "menswearhouse.com", > envelope :contains "From" "officedepot.com", > envelope :contains "From" "walgreens.com", > header :contains "From" "promo at email.newegg.com") { > fileinto :create "Promo"; > stop; > > Hope that helps > > Best Regards > > Martin > > On 2016-11-30 08:47, Steven Mainor wrote: >> Hello! I hope you will forgive my ignorance but I have a problem I >> have been trying to solve for a week and I'm not sure where else to >> turn. >> >> I'm trying to write a sieve script to sort all of my mail. I was >> writing this script to replace the one I am currently using but I >> can't seem to get it to compile. I don't know a lot about sieve or >> really scripting of any kind and I just can't figure out what I'm >> doing wrong. >> >> The compiler just puts out a bunch of output that doesn't make sense. >> like "unexpected character" when I know the character works there >> because I am already running a script with some of the same lines. >> >> I'm attaching the script with some names and addresses changed and the >> sieve output to this email. >> >> I would greatly appreciate any help anyone could offer.
Reasonably Related Threads
- Sieve script won't compile. Compiler output isn't helpful.
- Sieve script won't compile. Compiler output isn't helpful.
- Sieve script won't compile. Compiler output isn't helpful.
- Sieve script won't compile. Compiler output isn't helpful.
- Sieve script won't compile. Compiler output isn't helpful.