[Dovecot] Getting started with sieve and conversion from procmail

Alex mysqlstudent at gmail.com
Tue Nov 15 17:38:44 EET 2011


Hi,

>> 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.

Can you describe how I might do this?

> Also, there is a non-standard (an still pretty much
> experimental) language extension for this, as provided by the pipe plugin:

Is there a way to just continue to use procmail?

>> 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=).

No, these are all simple header matches. There's no external program
being executed here. The LOG= is also a procmail built-in, but I can
do without that.

Thanks again,
Alex


More information about the dovecot mailing list