Now i tried an additional rule in my "normal" working sieve-filter: if address :domain :matches "from" "company.example" ? { setflag "\\seen"; fileinto :create "INBOX/foo/test"; stop; } and sent an email from my company-account. The folder INBOX/foo/test gets created, but the message inside is not marked as seen. So i think, this is a bug in dovecot/pigeonhole, which ignores the \\seen-Flag being set by sieve-script. I tried to set the seen-flag to the message with doveadm. This works correctly. BG Jakob Am 04.12.18 um 14:23 schrieb Jakobus Sch?rz:> > Ok. I tried another Thunderbird-specific Flag: > > require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; > if environment :matches "imap.email" "*" { > ? set "email" "${1}";?? > } > addflag "Junk"; > addflag "\\seen"; > addflag "$label3"; > pipe :copy "learn-spam.sh"; > pipe :copy "learn-spam-sa.sh" [ "${email}" ]; > > When i move an unflagged email to Folder Junk, it is shown in > Thunderbird as "personal", Junk but Unseen. > > So, the rule is really working, except for the \\seen-Flag. > > I have the line > > addflag "\\seen"; > > from the dovecot-wiki! > > BG jakob > > > > Am 04.12.18 um 14:06 schrieb Jakobus Sch?rz: >> Hi Ralph! >> >> This is, what calls the correct sive-filter rules. I have that already >> in use. >> But the file >> >> file:/etc/dovecot/sievepipe/report-spam >> >> contains my sieve-script from my first posting. >> So, the difference from setflag to addflag is, setflag sets the flags, >> and only the given flags (removing all other flags), and addflag adds a >> flag to the existing flags... >> >> I fiddled around a little... >> The sieve-script sets the Junk-Flag, when it looks like: >> >> require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", >> "environment", "variables"]; >> >> if environment :matches "imap.email" "*" { >> ? set "email" "${1}";?? >> } >> >> addflag "Junk \\seen"; >> pipe :copy "learn-spam.sh"; >> pipe :copy "learn-spam-sa.sh" [ "${email}" ]; >> >> But the \\seen-Flag is not set. >> >> When i comment out the addflag-line, the Junk-Flag is not set. So the >> line works correct... but only for the Junk-Flag, not for the seen-Flag... >> Why? >> >> >> BR >> >> Jakob >> >> Am 04.12.18 um 12:46 schrieb Ralph Seichter: >>> * Jakobus Sch?rz: >>> >>>> addflag "Junk"; >>>> setflag "\\seen"; >>> That's probably not what you want, because the 'setflag' command >>> replaces all existing flags. In any case, I recommend you use this >>> method instead: >>> >>> plugin { >>> sieve_pipe_bin_dir = /etc/dovecot/sievepipe >>> >>> # Message moved into Spam folder >>> imapsieve_mailbox1_name = Junk >>> imapsieve_mailbox1_causes = COPY >>> imapsieve_mailbox1_before = file:/etc/dovecot/sievepipe/report-spam >>> >>> # Message moved out of Spam folder >>> imapsieve_mailbox2_name = * >>> imapsieve_mailbox2_from = Junk >>> imapsieve_mailbox2_causes = COPY >>> imapsieve_mailbox2_before = file:/etc/dovecot/sievepipe/report-ham >>> } >>> >>> This was typed from memory, so I hope the syntax is correct. >>> >>> -Ralph-------------- next part -------------- An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20181204/eb9ae09e/attachment-0001.html>
I have the following, and it works: require ["include","fileinto","imap4flags","variables"]; global "MyFlags"; if header :contains ["X-LERCTR-Spam-Flag","X-TNTSCAN-Spam-Flag"] "YES" { redirect "spamtrap at spambouncer.org"; addflag "MyFlags" "\\Seen Junk"; fileinto :flags "${MyFlags}" "SPAM"; stop; } FWIW. On Tue, Dec 4, 2018 at 8:25 AM Jakobus Sch?rz <wertstoffe at nurfuerspam.de> wrote:> Now i tried an additional rule in my "normal" working sieve-filter: > > if address :domain :matches "from" "company.example" > { setflag "\\seen"; fileinto :create "INBOX/foo/test"; stop; } > > and sent an email from my company-account. The folder INBOX/foo/test gets > created, but the message inside is not marked as seen. > > So i think, this is a bug in dovecot/pigeonhole, which ignores the > \\seen-Flag being set by sieve-script. > > I tried to set the seen-flag to the message with doveadm. This works > correctly. > > > BG Jakob > > > > Am 04.12.18 um 14:23 schrieb Jakobus Sch?rz: > > Ok. I tried another Thunderbird-specific Flag: > > require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; > if environment :matches "imap.email" "*" { > set "email" "${1}"; > } > addflag "Junk"; > addflag "\\seen"; > addflag "$label3"; > pipe :copy "learn-spam.sh"; > pipe :copy "learn-spam-sa.sh" [ "${email}" ]; > > When i move an unflagged email to Folder Junk, it is shown in Thunderbird > as "personal", Junk but Unseen. > > So, the rule is really working, except for the \\seen-Flag. > > I have the line > > addflag "\\seen"; > > from the dovecot-wiki! > > BG jakob > > > > Am 04.12.18 um 14:06 schrieb Jakobus Sch?rz: > > Hi Ralph! > > This is, what calls the correct sive-filter rules. I have that already > in use. > But the file > file:/etc/dovecot/sievepipe/report-spam > > contains my sieve-script from my first posting. > So, the difference from setflag to addflag is, setflag sets the flags, > and only the given flags (removing all other flags), and addflag adds a > flag to the existing flags... > > I fiddled around a little... > The sieve-script sets the Junk-Flag, when it looks like: > > require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", > "environment", "variables"]; > > if environment :matches "imap.email" "*" { > set "email" "${1}"; > } > > addflag "Junk \\seen"; > pipe :copy "learn-spam.sh"; > pipe :copy "learn-spam-sa.sh" [ "${email}" ]; > > But the \\seen-Flag is not set. > > When i comment out the addflag-line, the Junk-Flag is not set. So the > line works correct... but only for the Junk-Flag, not for the seen-Flag... > Why? > > > BR > > Jakob > > Am 04.12.18 um 12:46 schrieb Ralph Seichter: > > * Jakobus Sch?rz: > > > addflag "Junk"; > setflag "\\seen"; > > That's probably not what you want, because the 'setflag' command > replaces all existing flags. In any case, I recommend you use this > method instead: > > plugin { > sieve_pipe_bin_dir = /etc/dovecot/sievepipe > > # Message moved into Spam folder > imapsieve_mailbox1_name = Junk > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_before = file:/etc/dovecot/sievepipe/report-spam > > # Message moved out of Spam folder > imapsieve_mailbox2_name = * > imapsieve_mailbox2_from = Junk > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_before = file:/etc/dovecot/sievepipe/report-ham > } > > This was typed from memory, so I hope the syntax is correct. > > -Ralph > >-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 (c) E-Mail: larryrtx at gmail.com US Mail: 5708 Sabbia Dr, Round Rock, TX 78665-2106 -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20181204/700de696/attachment.html>
Which version of dovecot are you using? jakob Am 04.12.18 um 15:44 schrieb Larry Rosenman:> I have the following, and it works: > require ["include","fileinto","imap4flags","variables"]; > global "MyFlags"; > if header :contains ["X-LERCTR-Spam-Flag","X-TNTSCAN-Spam-Flag"] "YES" > { > redirect "spamtrap at spambouncer.org"; > addflag "MyFlags" "\\Seen Junk"; > fileinto :flags "${MyFlags}" "SPAM"; > stop; > } > > FWIW. > > > On Tue, Dec 4, 2018 at 8:25 AM Jakobus Sch?rz <wertstoffe at nurfuerspam.de> > wrote: > >> Now i tried an additional rule in my "normal" working sieve-filter: >> >> if address :domain :matches "from" "company.example" >> { setflag "\\seen"; fileinto :create "INBOX/foo/test"; stop; } >> >> and sent an email from my company-account. The folder INBOX/foo/test gets >> created, but the message inside is not marked as seen. >> >> So i think, this is a bug in dovecot/pigeonhole, which ignores the >> \\seen-Flag being set by sieve-script. >> >> I tried to set the seen-flag to the message with doveadm. This works >> correctly. >> >> >> BG Jakob >> >> >> >> Am 04.12.18 um 14:23 schrieb Jakobus Sch?rz: >> >> Ok. I tried another Thunderbird-specific Flag: >> >> require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"]; >> if environment :matches "imap.email" "*" { >> set "email" "${1}"; >> } >> addflag "Junk"; >> addflag "\\seen"; >> addflag "$label3"; >> pipe :copy "learn-spam.sh"; >> pipe :copy "learn-spam-sa.sh" [ "${email}" ]; >> >> When i move an unflagged email to Folder Junk, it is shown in Thunderbird >> as "personal", Junk but Unseen. >> >> So, the rule is really working, except for the \\seen-Flag. >> >> I have the line >> >> addflag "\\seen"; >> >> from the dovecot-wiki! >> >> BG jakob >> >> >> >> Am 04.12.18 um 14:06 schrieb Jakobus Sch?rz: >> >> Hi Ralph! >> >> This is, what calls the correct sive-filter rules. I have that already >> in use. >> But the file >> file:/etc/dovecot/sievepipe/report-spam >> >> contains my sieve-script from my first posting. >> So, the difference from setflag to addflag is, setflag sets the flags, >> and only the given flags (removing all other flags), and addflag adds a >> flag to the existing flags... >> >> I fiddled around a little... >> The sieve-script sets the Junk-Flag, when it looks like: >> >> require ["imap4flags", "vnd.dovecot.pipe", "copy", "imapsieve", >> "environment", "variables"]; >> >> if environment :matches "imap.email" "*" { >> set "email" "${1}"; >> } >> >> addflag "Junk \\seen"; >> pipe :copy "learn-spam.sh"; >> pipe :copy "learn-spam-sa.sh" [ "${email}" ]; >> >> But the \\seen-Flag is not set. >> >> When i comment out the addflag-line, the Junk-Flag is not set. So the >> line works correct... but only for the Junk-Flag, not for the seen-Flag..