sieve-extprogram: How to hand over a variable or pipe a mail so a shell script?

Stephan Bosch stephan at rename-it.nl
Thu Jun 16 21:46:35 UTC 2016


Op 5/19/2016 om 2:40 PM schreef M. Koehler:
> Hi,
>
> I´m just playing around with sieve-extprogram but it didn´t works like
> I think. I want
>
> a. execute a shell script that get the subject as parameter
>
> my try:
>
> require ["fileinto","variables","envelope","vnd.dovecot.execute"];
> if header :contains "Subject" "123test"
>     {
>         execute :input "${1}" "exec-test";
>         keep;
>     }
>
> and
>
> require ["fileinto","variables","envelope","vnd.dovecot.execute"];
> if header :contains "Subject" "123test"
>     {
>         execute "exec-test" "${1}";
>         keep;
>     }
>
> The shell script will create a file with $1 as text. But I didn´t get
> any output - the created file is empty

What is ${1} supposed to contain? Only with the ":matches" and ":regex"
match types those numeric variables are assigned.

> b. later the complete mail should piped to the shell script
>
> require ["fileinto","variables","envelope","vnd.dovecot.execute"];
> if header :contains "Subject" "123test"
>     {
>         execute :pipe "exec-test";
>         keep;
>     }
>
> This should (as
> http://hg.rename-it.nl/dovecot-2.2-pigeonhole/raw-file/tip/doc/rfc/spec-bosch-sieve-extprograms.txt
> described) hand over the complete mail to the script But I don´t know
> how I handle the complete mail with a shell script? I think the mail
> will not hand over as a parameter to the shell script, right? But how
> should I store the mail into a file or should I pipe it through a sed
> command line (and so one) into a shell script?
>
> Hope someone could bring some lights into my darkness :) 

The mail is passed as the standard input of the script. Lots of online
resources should tell you what that means.

Regards,

Stephan.





More information about the dovecot mailing list