Jakobus Schürz
2018-Dec-04 11:28 UTC
set seen flag and junk moving a mail manually to JUNK
Hi there!
I want to set the \seen and the Junk Flag to an email, which i move
manually to my Junk-Folder.
I tried a lot... but nothing worked like expected.
I have a sieve-filter, which takes an email and copy it to a pipe to
rspamc. This filter is working correctly, i get a debug-message from the
script, which is called through the sieve-filter.
But adding another rule (addflag "Junk"; setflag "\\seen";)
to this rule
is getting ignored...
Here is my sieve-rule:
require ["imap4flags", "vnd.dovecot.pipe", "copy",
"imapsieve", "environment", "variables"];
if environment :matches "imap.email" "*" {
? set "email" "${1}";??
}
addflag "Junk";
setflag "\\seen";
pipe :copy "learn-spam.sh" [ "${email}" ];
How said before, the script learn-spam.sh is called, when i move a
Message via drag&drop in thunderbird from the INBOX to the Junk-Folder.
But the message in the Junk-Folder is unseen, recent and has no Junk-Flag...
What's wrong?
BR
Jakob
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<https://dovecot.org/pipermail/dovecot/attachments/20181204/198ed99f/attachment.html>
Ralph Seichter
2018-Dec-04 11:46 UTC
set seen flag and junk moving a mail manually to JUNK
* 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
Jakobus Schürz
2018-Dec-04 13:06 UTC
set seen flag and junk moving a mail manually to JUNK
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