[Dovecot] Getting started with sieve and conversion from procmail

Stephan Bosch stephan at rename-it.nl
Tue Nov 15 09:41:37 EET 2011


On 11/15/2011 3:30 AM, Alex wrote:
> I have a number of procmail scripts and I've converted them to sieve,
> but they didn't convert very well. Can someone show me how to convert
> the following:
>
> :0
> {
>      :0 fhW
>      | /home/alex/bin/process-mail.pl
> }
>
> The script skipped right over that.
The Sieve language doesn't support invoking external programs. You can 
execute this program before Sieve, for instance by wrapping the LDA 
invocation. Also, there is a non-standard (an still pretty much 
experimental) language extension for this, as provided by the pipe plugin:

http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe

> I'm also trying to convert the following:
>
> :0
> * (RCVD_IN_DNSWL_HI|RCVD_IN_DNSWL_LOW|RCVD_IN_HOSTKARMA_W)
> * !USER_IN_WHITELIST
> * !BAYES_00
> * !URIBL_
> * !KHOP_RCVD_UNTRUST
> * !RCVD_IN_DNSWL_MED
> * !SPF_SOFTFAIL
> * SPF_HELO_PASS
> * SPF_PASS
> {
>          LOG="DNSWL: "
>          :0:
>          whitelist/dnswl
> }
>
> The script only produced the following:
[...]
> Any ideas greatly appreciated.

I'm not sure what these rules are supposed to mean (most conditions are 
obscured in variables), but by the looks of things these should also be 
executed outside Sieve as well. If all those conditions map to simple 
header and envelope tests, you can provide a Sieve alternative. However, 
I think USER_IN_WHITELIST queries some external list and that too is not 
(currently) possible from Pigeonhole Sieve. Also, it is not possible to 
change the log prefix from Sieve (as suggested by LOG=).

Regards,

Stephan





More information about the dovecot mailing list