View Issue Details

IDProjectCategoryView StatusLast Update
0001813SOGoWeb Mailpublic2012-12-12 22:06
Reportergeepie Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionreopened 
Product Version1.3.14 
Fixed in Version2.0.3 
Summary0001813: Sieve script are not saved
Description

When I created a sieve script, the script is saved in the user preference field in sogo, visible in pg.

Then sogo disable all the others sieve scripts in the sieve server.
But sogo did not created the sieve script with name 'sogo'.

Additional Information

OpenBSD 5.1
Sogo 1.3.14
PostgreSQL 9.1
ArchiveOpetryx 3.1.3

TagsNo tags attached.

Activities

ludovic

ludovic

2012-05-31 18:38

administrator   ~0003994

Sniff the traffic between sogod and your Sieve server and post the result.

geepie

geepie

2012-06-06 20:28

reporter   ~0004023

tcpdump of the traffic. I got the error

.4@.@.]..........^.9.x....35...............M....NO {1186}..
1:1: In command: Eachstring must be a supported sieve extension. These are not: "imapflags"..
2:1: While parsing command:..
2:198: While parsing block:..
4:5: In command: Command unknown: addflag..
2:1: While parsingcommand:..
2:198: While parsing block:..
4:5: While parsing command:..
4:13: Whileparsing arguments:..
4:13: In argument: Why is this string/list here?..
9:1: While parsing command:..
9:61: While parsing block:..
11:5: In command: Command unknown: addflag..
9:1:While parsing command:..
9:61: While parsing block:..
11:5: Whileparsing command:..
11:13: While parsing arguments:..
11:13: In argument: Why is this string/list here?..
13:1: While parsing command:..
13:54: While parsing block:..
15:5: In command: Command unknown: addflag..
13:1: While parsing command:..
13:54: While parsingblock:..
15:5: While parsing command:..
15:13: While parsing arguments:..
15:13: In argument: Why is this string/list here?..
17:1:While parsing command:..
17:54: While parsing block:..
19:5: In command: Command unknown: addflag..
17:1: While parsing command:..
17:54: While parsing block:..
19:5: While parsingcommand:..
19:13: While parsing arguments:..
19:13: In argument: Why is this string/list here?......

Is it possible to disabled imapflag for sieve in sogo ?

geepie

geepie

2012-06-07 18:18

reporter   ~0004026

Or better: to use imap4flag as in RFC

ludovic

ludovic

2012-11-30 21:10

administrator   ~0005010

This is now fixed. Please try with the upcoming nightly build (available in 0000036:0000012 hours).

geepie

geepie

2012-12-11 19:57

reporter   ~0005063

Always the same bug with sogo 2.0.3

tcpdump -A -s1024 -i lo0 port 4190

tcpdump: listening on lo0, link-type LOOP
19:27:53.521565 localhost.12405 > localhost.sieve: S 1913539140:1913539140(0) win 16384 <mss 33112,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 2584451913 0> (DF)
E..@..@.@...........0u.^r.JD......@.I......X...........
.
.I....
19:27:53.521591 localhost.sieve > localhost.12405: S 22277190:22277190(0) ack 1913539141 win 16384 <mss 33112,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 2504538015 2584451913> (DF)
E..@.>@.@.Ew.........^0u.S.Fr.JE..@..I.....X...........
.H7..
.I
19:27:53.521611 localhost.12405 > localhost.sieve: . ack 1 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..4|.@.@...........0u.^r.JE.S.G...........
.
.I.H7.
tcpdump: WARNING: compensating for unaligned libpcap packets
19:27:53.529714 localhost.sieve > localhost.12405: P 1:269(268) ack 1 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
t.@.@............^0u.S.Gr.JE...........
.H7..
.I"IMPLEMENTATION" "Archiveopteryx 3.1.3"
"SIEVE" "body comparator-i;ascii-casemap comparator-i;ascii-numeric comparator-i;octet date ereject envelope fileinto ihave reject relational subaddress vacation"
"SASL" "CRAM-MD5 PLAIN"
"VERSION" "1.0"
"X-AOX-EXPLAIN"
OK
....
19:27:53.529748 localhost.12405 > localhost.sieve: . ack 269 win 2014 <nop,nop,timestamp 2584451913 2504538015> (DF)
dP@.@..q........0u.^r.JE.S.S...........
.
.I.H7."IMP
19:27:53.530284 localhost.12405 > localhost.sieve: P 1:49(48) ack 269 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..d.,@.@.Ie........0u.^r.JE.S.S.....b.....
.
.I.H7.AUTHENTICATE "PLAIN" {20+}
amcAamcASGF0ZXIxMjM=
19:27:53.530310 localhost.sieve > localhost.12405: . ack 49 win 2042 <nop,nop,timestamp 2504538015 2584451913> (DF)
..@.@.9 .........^0u.S.Sr.Ju...........
.H7..
.I"IMP
19:27:53.530345 localhost.12405 > localhost.sieve: P 49:51(2) ack 269 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..67.@.@...........0u.^r.Ju.S.S....ul.....
.
.I.H7.

19:27:53.530363 localhost.sieve > localhost.12405: . ack 51 win 2041 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..4bh@.@..Y.........^0u.S.Sr.Jw...........
.H7..
.I
19:27:53.533810 localhost.sieve > localhost.12405: P 269:273(4) ack 51 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
..@.@.'..........^0u.S.Sr.Jw....&......
.H7..
.IOK
LEME
19:27:53.533832 localhost.12405 > localhost.sieve: . ack 273 win 2047 <nop,nop,timestamp 2584451913 2504538015> (DF)
./@.@...........0u.^r.Jw.S.W.....{.....
.
.I.H7.OK

19:27:53.536050 localhost.12405 > localhost.sieve: P 51:63(12) ack 273 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..@.N@.@..g........0u.^r.Jw.S.W...........
.
.I.H7.SETACTIVE ""
19:27:53.536080 localhost.sieve > localhost.12405: . ack 63 win 2046 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..44.@.@..8.........^0u.S.Wr.J......p.....
.H7..
.I
19:27:53.536120 localhost.12405 > localhost.sieve: P 63:65(2) ack 273 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
..@.@.,.........0u.^r.J..S.W....uZ.....
.
.I.H7.

LE
19:27:53.536138 localhost.sieve > localhost.12405: . ack 65 win 2046 <nop,nop,timestamp 2504538015 2584451913> (DF)
N.@.@............^0u.S.Wr.J......n.....
.H7..
.I

19:27:53.539012 localhost.sieve > localhost.12405: P 273:277(4) ack 65 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..8.q@.@.mL.........^0u.S.Wr.J.....&
.....
.H7..
.IOK

19:27:53.539034 localhost.12405 > localhost.sieve: . ack 277 win 2047 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..4..@.@...........0u.^r.J..S.[.....i.....
.
.I.H7.
19:27:53.539222 localhost.12405 > localhost.sieve: P 65:84(19) ack 277 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
.@.@./.........0u.^r.J..S.[...........
.
.I.H7.DELETESCRIPT "sogo"rchi
19:27:53.539243 localhost.sieve > localhost.12405: . ack 84 win 2045 <nop,nop,timestamp 2504538015 2584451913> (DF)
.,@.@.R..........^0u.S.[r.J......X.....
.H7..
.IDELE
19:27:53.539276 localhost.12405 > localhost.sieve: P 84:86(2) ack 277 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..6..@.@.k.........0u.^r.J..S.[....uA.....
.
.I.H7.

19:27:53.539293 localhost.sieve > localhost.12405: . ack 86 win 2045 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..4..@.@.9..........^0u.S.[r.J......V.....
.H7..
.I
19:27:53.542392 localhost.sieve > localhost.12405: P 277:298(21) ack 86 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
U.@.@............^0u.S.[r.J.....E......
.H7..
.INO "No such script"
hive
19:27:53.542413 localhost.12405 > localhost.sieve: . ack 298 win 2045 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..4
.@.@.1.........0u.^r.J..S.p.....A.....
.
.I.H7.
19:27:53.543235 localhost.12405 > localhost.sieve: P 86:598(512) ack 298 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
S"@.@...........0u.^r.J..S.p...........
.
.I.H7.PUTSCRIPT "sogo" {883+}
require ["fileinto","imapflags"];
if anyof (address :contains "to" "pub@rilk.com") {
fileinto "Junk";
addflag "Junk";
}
if anyof (address :contains ["to", "cc"] "pub@rilk.com", address :contains "from" "pub@rilk.com", header :contains "Received" "pub@rilk.com", address :contains ["to", "cc"] "pub@desktop.rilk.com") {
fileinto "Junk";
addflag "Junk";
}
if anyof (address :contains ["to", "cc"] "openet@rilk.com", address :contains "from" "openet@rilk.com", head....
19:27:53.543267 localhost.sieve > localhost.12405: . ack 598 win 1984 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..4V.@.@............^0u.S.pr.L......~.....
.H7..
.I
19:27:53.543311 localhost.12405 > localhost.sieve: P 598:994(396) ack 298 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
Y.@.@..e........0u.^r.L..S.p.....[.....
.
.I.H7.er :contains "Received" "openet@rilk.com") {
fileinto "Junk";
addflag "Junk";
}
if anyof (address :contains "from" "projet-sofinco.com") {
fileinto "Junk";
addflag "Junk";
}
if anyof (header :contains "X-Spam-Status" "Yes") {
fileinto "Junk";
addflag "Junk";
}
if anyof (address :contains "from" "spartoo.com") {
fileinto "Junk";
addflag "Junk";
}
k";
19:27:53.543330 localhost.sieve > localhost.12405: . ack 994 win 1934 <nop,nop,timestamp 2504538015 2584451913> (DF)
..@.@............^0u.S.pr.N&.....$.....
.H7..
.Ier :
19:27:53.543364 localhost.12405 > localhost.sieve: P 994:996(2) ack 298 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..6 .@.@...........0u.^r.N&.S.p....q......
.
.I.H7.

19:27:53.543379 localhost.sieve > localhost.12405: . ack 996 win 1934 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..4.5@.@.f..........^0u.S.pr.N(.....".....
.H7..
.I
19:27:53.546099 localhost.sieve > localhost.12405: P 298:2047(1749) ack 996 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
.5@.@............^0u.S.pr.N(....T......
.H7..
.INO {1736}
1:1: In command: Each string must be a supported sieve extension. These are not: "imapflags"
2:1: While parsing command:
2:50: While parsing block:
4:5: In command: Command unknown: addflag
2:1: While parsing command:
2:50: While parsing block:
4:5: While parsing command:
4:13: While parsing arguments:
4:13: In argument: Why is this string/list here?
6:1: While parsing command:
6:198: While parsing block:
8:5: In command: Command unknown: addflag
6:1: While parsing command:
6:198: While parsing block:
8:5: While parsing command:
8:13: While parsing arguments:
8:13: In argument: Why is this string/list here?
10:1: While parsing command:
10:152: While parsing block:
12:5: In command: Command unknown: addflag
10:1: While parsing command:
10:152: While parsing block:
12:5: While parsing command:
12:13: While parsing arguments:
12:13: In argument: Why is this string/list here?
14:1: While parsing command:
14:58: While pars....
19:27:53.546135 localhost.12405 > localhost.sieve: . ack 2047 win 1829 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..4=.@.@...........0u.^r.N(.S.E...%x......
.
.I.H7.
19:27:53.547198 localhost.12405 > localhost.sieve: F 996:996(0) ack 2047 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
z.@.@...........0u.^r.N(.S.E....w......
.
.I.H7.NO {
19:27:53.547234 localhost.sieve > localhost.12405: . ack 997 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
E..4..@.@.#..........^0u.S.Er.N)....w......
.H7..
.I
19:27:53.547329 localhost.sieve > localhost.12405: F 2047:2047(0) ack 997 win 2048 <nop,nop,timestamp 2504538015 2584451913> (DF)
K.@.@............^0u.S.Er.N)....w......
.H7..
.INO {
19:27:53.547360 localhost.12405 > localhost.sieve: . ack 2048 win 2048 <nop,nop,timestamp 2584451913 2504538015> (DF)
E..40.@.@.
2........0u.^r.N).S.F....w......
.
.I.H7.

krpi

krpi

2012-12-12 06:10

reporter   ~0005065

Last edited: 2012-12-12 06:14

In 2.0.3 is corrected deprecated imapflags sieve flag to imap4flags.

http://www.sogo.nu/bugs/view.php?id=2082

Correct your configuration (or version) of archiveopteryx sieve to support imap4flags.

from your log:
1:1: In command: Each string must be a supported sieve extension. These are not: "imapflags"

http://archives.aox.org/archives/mailstore-users/3795/thread

Your sieve script has to be resaved in sogo. On header of script must be
require ["imap4flags"];

geepie

geepie

2012-12-12 22:06

reporter   ~0005068

archiveopteryx support imap4flags since long ago. I discuss with their devs.

The error message
1:1: In command: Each string must be a supported sieve extension. These are not: "imapflags"
is send by archiveopteryx to sogo because sogo send the following sieve script
require ["fileinto","imapflags"];
if anyof (address :contains "to" "pub@rilk.com") {
fileinto "Junk";
addflag "Junk";
}
with the wrong imapflags !!!

The problem lies in the sogo code that does not correctly auto-detect which server's type uses imapflags or imap4flags. There are comments in sogo's code saying that default behavior is supposed (but not checked !)

Issue History

Date Modified Username Field Change
2012-05-22 18:49 geepie New Issue
2012-05-31 18:38 ludovic Note Added: 0003994
2012-06-06 20:28 geepie Note Added: 0004023
2012-06-07 18:18 geepie Note Added: 0004026
2012-11-30 21:10 ludovic Note Added: 0005010
2012-11-30 21:10 ludovic Status new => closed
2012-11-30 21:10 ludovic Resolution open => fixed
2012-11-30 21:10 ludovic Fixed in Version => 2.0.3
2012-12-11 19:57 geepie Note Added: 0005063
2012-12-11 19:57 geepie Status closed => feedback
2012-12-11 19:57 geepie Resolution fixed => reopened
2012-12-12 06:10 krpi Note Added: 0005065
2012-12-12 06:14 krpi Note Edited: 0005065
2012-12-12 22:06 geepie Note Added: 0005068